PHP使用Yii2实现LinkedIn(Api)授权登录并获取信息Demo
- 4816
- PHP
- 33
- super_dodo
- 2016/11/08
在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。
之后直接上代码:LinkedinController.php
<?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\web\Controller; use yii\httpclient\Client; use yii\authclient\clients\LinkedIn; //此部分为直接使用官方的文档实践. //使用Yii的扩展yii\authclient //备注说明: LinkedIn 里面的两个地址有变化,需要更新$authUrl和$tokenUrl //回调地址需要在LinkedIn的后台进行配置设置(可以设置多个) //https://developer.linkedin.com/docs/oauth2 //https://www.linkedin.com/developer/apps/4*********5/auth class LinkedinController extends Controller{ const CLIENT_ID = '8***********za'; const CLIENT_SECRET = 'tO*************Dl'; //授权地址 public function actionAuthUrl(){ //实例化类 $client = new LinkedIn([ 'clientId' => self::CLIENT_ID, 'clientSecret' => self::CLIENT_SECRET, ]); $param = ['redirect_uri'=>'http://sns.*********.com/linkedin/call-back']; $url = $client->buildAuthUrl($param); //组装成新的URL地址 $url .= '&force_login=true'; //强制用户登录(not work) return Yii::$app->getResponse()->redirect($url); //跳转到授权的页面 } //回调地址 public function actionCallBack(){ //实例化类 $client = new LinkedIn([ 'clientId' => self::CLIENT_ID, 'clientSecret' => self::CLIENT_SECRET, ]); $authCode = Yii::$app->request->get('code'); $token = $client->fetchAccessToken($authCode); $access_token = $token->getParam('access_token'); //179个字符 $expires_in = $token->getParam('expires_in'); //过期时间--5184000 = 6天 $userInfo = $client->getUserAttributes(); $userEmail = $userInfo['email']; // string 'do@aaaa.com' (length=14) $userId = $userInfo['id']; //string '6p******4q' (length=10) Yii::$app->end(); /* 'id' => string '6p******4q' (length=10) 'email-address' => string 'do@aaaa.com' (length=14) 'first-name' => string '大大' (length=3) 'last-name' => string '小' (length=3) 'public-profile-url' => string 'https://www.linkedin.com/in/***************b' (length=57) 'email' => string 'do@aaaa.com' (length=14) 'first_name' => string '大大' (length=3) 'last_name' => string '小' (length=3)*/ //建立一张表--存储该内容 } }
备注说明:因为linkedin的接口文档地址已更新,但是插件的尚未更新,请更新修改为:
class LinkedIn extends OAuth2 { /** * @inheritdoc */ // public $authUrl = 'https://www.linkedin.com/uas/oauth2/authorization'; public $authUrl = 'https://www.linkedin.com/oauth/v2/authorization'; //新的 /** * @inheritdoc */ // public $tokenUrl = 'https://www.linkedin.com/uas/oauth2/accessToken'; public $tokenUrl = 'https://www.linkedin.com/oauth/v2/accessToken'; //新的 /** * @inheritdoc */ public $apiBaseUrl = 'https://api.linkedin.com/v1';
PHP使用Yii2实现Twitter授权登录并获取信息Demo
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例