微博登入php,ThinkPHP接入微博登录

微博登录原理,简单介绍一下,通过特定网址携带固定参数,发起请求登录,之后通过回调地址,获取code值,通过code值获取access_token值和uid值,通过上面获取的值获取用户信息。

以下基础信息简要介绍一下

一、申请账号

地址:https://weibo.com/signup/signup.php

二、完善信息

完善信息,实名认证等操作

三、申请应用

选择“微博登录”,并填写相关信息,完善应用。

四、应用审核

获取相关信息,App key 和 App Sercet,以及填写回调地址

五、前端代码

填写“App key” 和“回调地址”,将链接上的**顺序替换

微博登录

六、php代码

//微博回调

public function wbback(){

//参数设置

$Client_id = "***"; //appkey

$Client_secret = "***"; //App Sercet

$Redirect_uri = "***"; //回调地址

//接收code值

$Code = I(‘get.code‘);

if(!$Code) $this->error("code获取失败!");

//获取access_token

$url = "https://api.weibo.com/oauth2/access_token?client_id=$Client_id&client_secret=$Client_secret&grant_type=authorization_code&redirect_uri=$Redirect_uri&code=$Code";

$info = $this->httpsRequest($url);

//json转数组

$info_json = json_decode($info,true);

//获取access_token和uid,用于获取用户信息

$access_token = $info_json[‘access_token‘];

$uid = $info_json[‘uid‘];

if($info){

//设置中文字符集

header("Content-type:text/html;charset=utf-8");

//获取用户信息

$info_url = "https://api.weibo.com/2/users/show.json?access_token=$access_token&uid=$uid";

$ch = curl_init();

//设置选项,包括URL

curl_setopt($ch, CURLOPT_URL,$info_url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

//执行并获取HTML文档内容

$output = curl_exec($ch);

curl_close($ch);

//此处可打印用户所有信息

//dump($output);

$userinfo = json_decode($output,true);

$username = $userinfo[‘screen_name‘];

echo "登录成功,用户名:$username";

}

}

//httpsRequest

public function httpsRequest($url,$post_data){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 设置请求为post类型

curl_setopt($ch, CURLOPT_POST, 1);

// 添加post数据到请求中

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

// 执行post请求,获得回复

$res= curl_exec($ch);

curl_close($ch);

return $res;

}

七、后续开发,请自行操作,谢谢

--------------------------------------------------------转载请标注出处,谢谢!---------------------------------------------------------------

THINKPHP最全第三方登录(包括腾讯QQ、微信、新浪微博、Github、淘宝网、百度、搜狐微博、人人、360、网易等等) 使用方式: 1、使用命名空间 use Org\ThinkSDK\ThinkOauth; 2、设置三方登录的类别并赋予一个变量 $type = ThinkOauth::getInstance('qq'); 3、设置配置文件 'THINK_SDK_(TYPE)' => array( 'APP_KEY' => '', //应用注册成功后分配的 APP ID 'APP_SECRET' => '', //应用注册成功后分配的KEY 'CALLBACK' => '', //注册应用填写的callback ), 上文中的(TYPE)为设置的类别,其值目前有以下几个: //腾讯QQ登录配置 THINK_SDK_QQ // 用户基本信息API接口 user/get_user_info //腾讯微博配置 THINK_SDK_TENCENT // 用户基本信息API接口 user/info //新浪微博配 THINK_SDK_SINA // 用户基本信息API接口 users/show。附加参数:'uid='.$obj->openid() //网易微博配置 THINK_SDK_T163 // 用户基本信息API接口 users/show //人人网配置 THINK_SDK_RENREN // 用户基本信息API接口 users.getInfo //360配置 THINK_SDK_X360 // 用户基本信息API接口 user/me //豆瓣配置 THINK_SDK_DOUBAN // 用户基本信息API接口 user/~me //Github配置 THINK_SDK_GITHUB // 用户基本信息API接口 user //Google配置 THINK_SDK_GOOGLE // 用户基本信息API接口 userinfo //MSN配置 THINK_SDK_MSN // 用户基本信息API接口 msn。附加参数:token //点点配置 THINK_SDK_DIANDIAN // 用户基本信息API接口 user/info //淘宝网配置 THINK_SDK_TAOBAO // 用户基本信息API接口 taobao.user.buyer.get。附加参数:'fields=user_id,nick,sex,buyer_credit,avatar,has_shop,vip_info' //百度配置 THINK_SDK_BAIDU // 用户基本信息API接口 passport/users/getLoggedInUser // 注意,百度的头像位置是http://tb.himg.baidu.com/sys/portrait/item/{$data['portrait']} //开心网配置 THINK_SDK_KAIXIN // 用户基本信息API接口 users/me //搜狐微博配置 THINK_SDK_SOHU // 用户基本信息API接口 i/prv/1/user/get-basic-info 4、实例化一个登录页面 redirect($type->getRequestCodeURL()); 这里的$type是第二部获取的结果 5、回调页面 $code = $this->get('code'); $type = 'QQ'; $sns = ThinkOauth::getInstance($type); //腾讯微博需传递的额外参数 $extend = null; if($type == 'tencent'){ $extend = array('openid' => $this->_get('openid'), 'openkey' => $this->_get('openkey')); } //请妥善保管这里获取到的Tok
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值