创建应用
首先你需要申请一个开发者账号,登录到 https://developer.twitter.com/en/apps,根据步骤创建一个应用,创建成功后会得到app key和app secret。
发起授权请求
我们需要首先下载Twitter oAuth开发包,下载地址:https://twitteroauth.com/。
这里本人根据项目需要去除了很多不相关的类库文件,只保留了开箱即用的精简版,大家在本文末尾留言可以获得下载地址。
引入twitter.php类后,实例化客户端:
require_once 'path/to/twitter.php';
$client = new TwitterClient();
$client->setConsumerKey('<<你的APP KEY>>']);
$client->setConsumerSecret('<<你的APP SECRET>>']);
$client->setOauthCallback('<<你的网站接收Twitter返回code的回调地址>>');
通过调用getAuthorizeURL()方法可获得授权请求链接:
header('Location: '.$client->getAuthorizeURL());
生成的请求链接形如:https://api.twitter.com/oauth/authenticate?oauth_token=X2c-fAAAADAAvJpHAAABcip8sAg
登录成功后,Twitter将会重定向到你网站的回调地址,并附加上新的oauth_token参数:https://api.twitter.com/oauth/authenticate?oauth_token=FXO7fwAAAAAAvJpHAAABciqK1qA
回调验证
首先还是需要实例化Twitter客户端,代码参考上面的“发起授权请求”部分,然后我们需要调用getCallback()方法,getCallback()方法首先会去验证请求的有效性,然后再次发起向接口“account/verify_credentials”发起请求以获得用户的基本信息:
public function getCallback() {
if(isset($_GET['oauth_token'])){
$connection = new TwitterOAuth($this->_key, $this->_secret, $_SESSION['request_token'], $_SESSION['request_token_secret']);
$access_token = $connection->getAccessToken($_REQUEST['oauth_verifier']);
if($access_token){
$connection = new TwitterOAuth($this->_key, $this->_secret, $access_token['oauth_token'], $access_token['oauth_token_secret']);
$params = ['include_entities'=>'false'];
return $connection->get('account/verify_credentials',$params);
}
}
}
用户信息识别及存储
通过上一步getCallback()调用后,我们会得到用户的基本信息:id, name, profile_image_url 分别对应于用户的平台唯一识别号、名字、头像地址,拿到这三个必要信息后我们就能将用户纳入自己的用户登录系统了,至于判断及存储逻辑在我们专栏前面都有所提及,如有疑问可在下方留言。