PHP使用Yii2实现LinkedIn(Api)授权登录并获取信息Demo
- 6485
- 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的使用示例

