300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php微博互粉网站源代码 PHP联合【新浪微博】实现第三方登陆

php微博互粉网站源代码 PHP联合【新浪微博】实现第三方登陆

时间:2023-02-16 22:03:02

相关推荐

php微博互粉网站源代码 PHP联合【新浪微博】实现第三方登陆

获取 APP KEY和 APP SECRET

第一步:请求用户授权的token

[appkey]&redirect_uri=[回调地址]&response_type=code

请求参数

必选类型及范围说明

client_idtruestring申请应用时分配的AppKey。

redirect_uritruestring授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。

scopefalsestring申请scope权限所需参数,可一次申请多个scope权限,用逗号分隔。使用文档

statefalsestring用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。这个参数可用于防止跨站请求伪造(CSRF)攻击

displayfalsestring授权页面的终端类型,取值见下面的说明。

forceloginfalseboolean是否强制用户重新登录,true:是,false:否。默认false。

languagefalsestring授权页语言,缺省为中文简体版,en为英文版。英文版测试中,开发者任何意见可反馈至 @微博API

display说明:

参数取值类型说明

default默认的授权页面,适用于web浏览器。

mobile移动终端的授权页面,适用于支持html5的手机。注:使用此版授权页请用 授权接口

wapwap版授权页面,适用于非智能手机。

client客户端版本授权页面,适用于PC桌面应用。

apponweibo默认的站内应用授权页,授权后不返回access_token,只刷新站内应用父框架。

返回数据

返回值字段字段类型字段说明

codestring用于第二步调用oauth2/access_token接口,获取授权后的access token。

statestring 如果传递参数,会回传该参数。

第二步:获取授权过的access token

$code = $_REQUEST['code'];

[appkey]&client_secret=[appsecret]&grant_type=authorization_code&code=[获取的code值]&grant_type=[回调地址]

请求参数

必选类型及范围说明

client_idtruestring申请应用时分配的AppKey。

client_secrettruestring申请应用时分配的AppSecret。

grant_typetrue string请求的类型,填写authorization_code

grant_type为authorization_code时

必选类型及范围说明

codetruestring调用authorize获得的code值。

redirect_uritruestring回调地址,需需与注册应用里的回调地址一致。

返回数据

{

"access_token": "ACCESS_TOKEN",

"expires_in": 1234,

"remind_in":"798114",

"uid":"12341234"

}

返回值字段字段类型字段说明

access_tokenstring用户授权的唯一票据,用于调用微博的开放接口,同时也是第三方应用验证微博用户登录的唯一票据,第三方应用应该用该票据和自己应用内的用户建立唯一影射关系,来识别登录状态,不能使用本返回值里的UID字段来做登录识别。

expires_instringaccess_token的生命周期,单位是秒数。

remind_in stringaccess_token的生命周期(该参数即将废弃,开发者请使用expires_in)。

uid string授权用户的UID,本字段只是为了方便开发者,减少一次user/show接口调用而返回的,第三方应用不能用此字段作为用户登录状态的识别,只有access_token才是用户授权的唯一票据。

通过curl方式执行url

private function _request($curl, $https=true, $method='get', $data=null){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $curl); //设置URL

curl_setopt($ch, CURLOPT_HEADER, false);//不返回网页URL的头信息

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //不直接显示,返回一个字符串

if($https){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//服务器端的证书不验证

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//客户端证书不验证

}

if($method == 'post'){

curl_setopt($ch, CURLOPT_POST, true); //设置为POST提交方式

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交数据$data

}

$str = curl_exec($ch);//执行访问

curl_close($ch);//关闭curl释放资源

return $str;

}

返回的是json数据,转换成数组进行处理,并获取access_teken的值

$content = json_decode($content);

$access_token = $content->access_token;

$uid = $content->uid;

{非必须,测试}第三步:授权信息查询接口

[$access_token]

请求参数

access_token:用户授权时生成的access_token。

返回数据

{

"uid": 1073880650,

"appkey": 1352222456,

"scope": null,

"create_at": 1352267591,

"expire_in": 157679471

}

返回值字段字段类型字段说明

uidstring授权用户的uid。

appkeystringaccess_token所属的应用appkey。

scopestring用户授权的scope权限。

create_atstringaccess_token的创建时间,从1970年到创建时间的秒数。

expire_instringaccess_token的剩余时间,单位是秒数。

{非必须,测试}第四步:授权回收窗口

[$access_token]

请求参数

access_token: 用户授权应用的access_token

返回数据

{

"result":"true"

}

使用场景说明

应用下线时,清空所有用户的授权

应用新上线了功能,需要取得用户scope权限,可以回收后重新引导用户授权

开发者调试应用,需要反复调试授权功能

应用内实现类似登出微博帐号的功能

第五步:根据微博的API获取微博的信息

wiki/ 微博API

示例:

根据用户ID获取用户信息

[$access_token]&uid=[$uid]

curl返回json数据,json_decode转换数组,返回的json数据保存用户的详细信息

请求参数

必选类型及范围说明

access_tokentruestring采用OAuth授权方式为必填参数,OAuth授权后获得。

uidfalseint64需要查询的用户ID。

screen_namefalsestring需要查询的用户昵称。

注意事项

参数uid与screen_name二者必选其一,且只能选其一;

接口升级后,对未授权本应用的uid,将无法获取其个人简介、认证原因、粉丝数、关注数、微博数及最近一条微博内容。

返回字段说明

返回值字段字段类型字段说明

id int64用户UID

idstr string 字符串型的用户UID

screen_namestring用户昵称

namestring友好显示名称

provinceint用户所在省级ID

cityint用户所在城市ID

location string用户所在地

descriptionstring 用户个人描述

urlstring 用户博客地址

profile_image_urlstring 用户头像地址(中图),50×50像素

profile_urlstring 用户的微博统一URL地址

domainstring 用户的个性化域名

weihaostring 用户的微号

genderstring 性别,m:男、f:女、n:未知

followers_count int 粉丝数

friends_countint 关注数

statuses_count int 微博数

favourites_count int 收藏数

created_atstring 用户创建(注册)时间

following boolean 暂未支持

allow_all_act_msgboolean 是否允许所有人给我发私信,true:是,false:否

geo_enabledboolean 是否允许标识用户的地理位置,true:是,false:否

verified boolean 是否是微博认证用户,即加V用户,true:是,false:否

verified_typeint暂未支持

remarkstring 用户备注信息,只有在查询用户关系时才返回此字段

status object 用户的最近一条微博信息字段 详细

allow_all_commentboolean 是否允许所有人对我的微博进行评论,true:是,false:否

avatar_large string 用户头像地址(大图),180×180像素

avatar_hdstring用户头像地址(高清),高清头像原图

verified_reason string 认证原因

follow_meboolean 该用户是否关注当前登录用户,true:是,false:否

online_statusint用户的在线状态,0:不在线、1:在线

bi_followers_count int 用户的互粉数

langstring用户当前的语言版本,zh-cn:简体中文,zh-tw:繁体中文,en:英语

阅读(420) | 评论(0) | 转发(0) |

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。