PHP Twitter 推特 第三方登录
文档 & 平台 & 说明
- twitter登录文档
- 开发者平台
- 申请成为开发流程按引导操作就可以了, 但是要注意信息填写要真实完善的信息, 否则容易被拒绝(被拒绝可能不能二次申请, 之前不能, 现在不知道能不能)
- 目前推特一个号只能开通一个免费应用, 可付费开通多个
- 设置基础信息
- User authentication settings 用户认证设置
需要填写重定向地址, 与之后代码中重定向地址要相同 - 使用 OAuth 2.0, v2 Twitter API 端点, 所以使用 OAuth 2.0的clientID 及 Secret
流程
- 生成跳转到twitter授权页面的url
- 授权后会带着用户code重定向到你的重定向地址
- 用code获取 access_token
- 用access_token获取用户信息
- 获取到用户信息之后就是本身的登录或者注册流程了
代码
HTML
# 一个点击跳转的按钮即可
<a class="animate" href="/signin?type=twitter" target="_blank"></a>
PHP
/*** 登录/注册*/
public function signin(Request $request)
{$type = $request->get('type');if ($type == 'twitter') {// 生成跳转到twitter授权页面的url, 重定向到授权页面$twitterModel = New NewTwitterLogin()$uri = $twitterModel->createOauthLink();return redirect()->away($url);}
}/*** twitter 回调接口*/
public function callBackTwitter()
{// 获取重定向链接中的code$code = $request->get('code');$twitter = new NewTwitterLogin();// 用code 获取 access_token$token = $twitter->getAccessToken($code);// 用 access_token 获取用户信息$userInfo = $twitter->getUserInfo($token);// 处理自己的登录/注册逻辑
}
- NewTwitterLogin.php model文件
<?phpnamespace App\Http\Models\Website;class NewTwitterLogin
{private $key = '*****';private $secret = '*********';// oauth 2.0 使用private $clientId = '********';private $clientSecret = '*******';private $redirect_uri = '*****' // 重定向url// 创建链接public function createOauthLink(){$url = "https://twitter.com/i/oauth2/authorize?response_type=code&client_id={$this->clientId}&redirect_uri={$this->redirect_uri}&scope=users.read%20tweet.read&state=twitter&code_challenge=challenge&code_challenge_method=plain";return $url;}/*** 获取access_token* * @param string code 登录授权后返回用户code*/public function getAccessToken($code){$url = 'https://api.twitter.com/2/oauth2/token';// Authorization Basic$basic = base64_encode($this->clientId . ':' . $this->clientSecret);$header = ["Content-Type: application/x-www-form-urlencoded","Authorization: Basic $basic",];$data = ['code' => $code,'grant_type' => 'authorization_code','redirect_uri' => $this->redirect_uri,'code_verifier' => 'challenge',];$data = http_build_query($data);$res = $this->curlMethod($url, $header, $data);return $res['access_token'];}/*** 获取用户信息*/public function getUserInfo($token){$uri = 'https://api.twitter.com/2/users/me';$header = ["Authorization: Bearer $token",];$res = $this->curlMethod($uri, $header, [], 'GET');return $res['data'];}public function curlMethod($uri, $header, $data = [], $method = 'POST', $json = true){$curl = curl_init();if ($data && is_array($data) && $json) {$data = json_encode($data);}curl_setopt_array($curl, array(CURLOPT_URL => $uri,CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => "",CURLOPT_MAXREDIRS => 10,// CURLOPT_TIMEOUT => 30,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => $method,CURLOPT_POSTFIELDS => $data,CURLOPT_HTTPHEADER => $header,));$response = curl_exec($curl);$err = curl_error($curl);curl_close($curl);return json_decode($response, true);}
}
PHP Twitter 推特 第三方登录相关推荐
- 友推集成第三方登录和分享的步骤
1.进入友推官网http://youtui.mobi/user/reg注册并申请应用key 2.申请微信平台appkey:https://open.weixin.qq.com/ 3.引入友推项目库(下 ...
- Android使用ShareSDK集成第三方登录和分享(v3.1.2)
一.产品概述 ShareSDK是一种社会化分享组件,为iOS.Android.WP8 的APP提供社会化功能,集成了一些常用的类库和接口,缩短开发者的开发时间,还有社会化统计分析管理后台. 二.集成方 ...
- 第三方登录的作用、价值与实现方式
什么叫做第三方登录 第三方登录,是相对于应用而言,用户登录操作不是基于自身建设账号体系,而是基于用户在第三方平台上已有的账号和密码来快速完成登录的过程.目前国内比较广泛使用的第三方登录方式为微博.微信 ...
- twitter授权登录 php,PHP版实现Twitter第三方登录的成功案例
QQ.微信.Fackbook等第三方登录使用OAuth2.0,随便找一些文档跟着做很快实现,没什么难度.等轮到Twitter时候,如果你也这样想,后面它就会证明你是错的! Twitter在当前时间(2 ...
- Android使用mob实现第三方登录(Facebook、Twitter)
文章目录 基本配置 1.申请各平台账号,获取各自的key和secret 2.添加依赖 3.添加插件 4.配置MobSdk 5.配置平台 6.mob在项目中的初始化 本文只是做记录和梳理流程,建议到mo ...
- 对接twitter第三方登录踩的坑
对接twitter第三方登录踩的坑 1.在twitter开发者项目中创建完应用后在应用的Key and tokens中获取到 appkey 然后把获取到的key放入 hello.init({}) 中的 ...
- Android之海外第三方登录
本文主要记录海外应用第三方登录: facebook(登录/分享), twitter(登录/分享), google(登录), Line(登录/分享),instagram(分享),属于记录流水账型的啦,谨 ...
- 第三方登录 (faceBook )
1.iOS 第三方登录(Facebook,Twitter...)http://www.jianshu.com/p/f64d5ad2ef2a 转载于:https://www.cnblogs.com/Th ...
- 这个第三方登录开源工具,支持市面上几乎所有主流平台!好用!
随着微信.支付宝等航母级应用在众人身边的普及,越来越多的应用.网站在登陆的时候除了提供注册用户外,还直接提供第三方登录的方式,也就是直接关联微信.支付宝这类应用,用已有的账号和密码来快速完成当前应用或 ...
最新文章
- 简单的路由协议分析和配置
- 机器学习中分类器常见评价指标
- ActiveMQ 入门
- 图书大甩卖(操作系统、C语言、Linux) 已成交
- java jframe 运行_java – 使用JProgressBar运行JFrame
- arcgis Manager 登陆时提示Incorrect login Information
- 期货与期权(part2)--远期合约
- 包管理器_包管理器的演变
- OLTP和OLAP是什么
- MagicDraw-包图
- php批量邮件地址,PHP通过phpmailer批量发送邮件功能
- qq游戏大厅中解析不安装apk的研究
- 一篇博客收能收录计算机网络?
- 谓语动词语态和时态相结合
- linux下磁盘坏道修复
- matlab 不规则 griddata,MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid...
- 成都星志远:现在开拼多多网店靠谱吗?
- XLSX导出页面表格内容 日期数据显示不全
- 一个开源的论坛系统AstalPathTalk
- 将QIIME2学习进行到底