Chinaunix首页 | 论坛 | 博客
  • 博客访问: 23164
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 61
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-03 11:15
文章分类
文章存档

2016年(5)

我的朋友
最近访客

分类: PHP

2016-08-04 11:28:15

获取 APP KEY和 APP SECRET

第一步:请求用户授权的token
[appkey]&redirect_uri=[回调地址]&response_type=code
请求参数
  必选 类型及范围 说明
client_id true string 申请应用时分配的AppKey。
redirect_uri true string 授权回调地址,站外应用需与设置的回调地址一致,站内应用需填写canvas page的地址。
scope false string 申请scope权限所需参数,可一次申请多个scope权限,用逗号分隔。使用文档
state false string 用于保持请求和回调的状态,在回调时,会在Query Parameter中回传该参数。开发者可以用这个参数验证请求有效性,也可以记录用户请求授权页前的位置。这个参数可用于防止跨站请求伪造(CSRF)攻击
display false string 授权页面的终端类型,取值见下面的说明。
forcelogin false boolean 是否强制用户重新登录,true:是,false:否。默认false。
language false string 授权页语言,缺省为中文简体版,en为英文版。英文版测试中,开发者任何意见可反馈至 @微博API

display说明:
参数取值 类型说明
default 默认的授权页面,适用于web浏览器。
mobile 移动终端的授权页面,适用于支持html5的手机。注:使用此版授权页请用 授权接口
wap wap版授权页面,适用于非智能手机。
client 客户端版本授权页面,适用于PC桌面应用。
apponweibo 默认的站内应用授权页,授权后不返回access_token,只刷新站内应用父框架。

返回数据
返回值字段              字段类型                 字段说明
code                     string                     用于第二步调用oauth2/access_token接口,获取授权后的access token。
state                     string                     如果传递参数,会回传该参数。


第二步:获取授权过的access token
$code = $_REQUEST['code'];
[appkey]&client_secret=[appsecret]&grant_type=authorization_code&code=[获取的code值]&grant_type=[回调地址]

请求参数
                      必选              类型及范围                  说明
client_id          true              string                 申请应用时分配的AppKey。
client_secret    true              string                 申请应用时分配的AppSecret。
grant_type      true              string                 请求的类型,填写authorization_code

grant_type为authorization_code时
  必选 类型及范围 说明
code true string 调用authorize获得的code值。
redirect_uri true string 回调地址,需需与注册应用里的回调地址一致。

返回数据
 {
       "access_token": "ACCESS_TOKEN",
       "expires_in": 1234,
       "remind_in":"798114",
       "uid":"12341234"
 }

返回值字段          字段类型              字段说明
access_token         string              用户授权的唯一票据,用于调用微博的开放接口,同时也是第三方应用验证微博用户登录的唯一票据,第三方应用应该用该票据和自己应用内的用户建立唯一影射关系,来识别登录状态,不能使用本返回值里的UID字段来做登录识别。
expires_in              string              access_token的生命周期,单位是秒数。
remind_in              string              access_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
 }

返回值字段             字段类型              字段说明
uid                          string                  授权用户的uid。
appkey                    string                  access_token所属的应用appkey。
scope                      string                  用户授权的scope权限。
create_at                 string                 access_token的创建时间,从1970年到创建时间的秒数。
expire_in                 string                  access_token的剩余时间,单位是秒数。

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

[$access_token]

请求参数
access_token: 用户授权应用的access_token
返回数据
 {
  "result":"true"
 }
使用场景说明
应用下线时,清空所有用户的授权
应用新上线了功能,需要取得用户scope权限,可以回收后重新引导用户授权
开发者调试应用,需要反复调试授权功能
应用内实现类似登出微博帐号的功能



第五步:根据微博的API获取微博的信息
wiki/   微博API
示例:
根据用户ID获取用户信息
[$access_token]&uid=[$uid]

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

请求参数
  必选 类型及范围 说明
access_token true string 采用OAuth授权方式为必填参数,OAuth授权后获得。
uid false int64 需要查询的用户ID。
screen_name false string 需要查询的用户昵称。
注意事项
参数uid与screen_name二者必选其一,且只能选其一;
接口升级后,对未授权本应用的uid,将无法获取其个人简介、认证原因、粉丝数、关注数、微博数及最近一条微博内容。

返回字段说明
返回值字段          字段类型              字段说明
id                       int64                      用户UID
idstr                   string                     字符串型的用户UID
screen_name      string                      用户昵称
name                 string                      友好显示名称
province             int                          用户所在省级ID
city                     int                         用户所在城市ID
location               string                    用户所在地
description          string                     用户个人描述
url                      string                    用户博客地址
profile_image_url string                    用户头像地址(中图),50×50像素
profile_url          string                     用户的微博统一URL地址
domain              string                     用户的个性化域名
weihao              string                     用户的微号
gender              string                    性别,m:男、f:女、n:未知
followers_count       int                   粉丝数
friends_count          int                   关注数
statuses_count        int                   微博数
favourites_count      int                   收藏数
created_at         string                    用户创建(注册)时间
following            boolean                暂未支持
allow_all_act_msg boolean              是否允许所有人给我发私信,true:是,false:否
geo_enabled      boolean                是否允许标识用户的地理位置,true:是,false:否
verified              boolean                是否是微博认证用户,即加V用户,true:是,false:否
verified_type      int                          暂未支持
remark              string                    用户备注信息,只有在查询用户关系时才返回此字段
status                object                  用户的最近一条微博信息字段 详细
allow_all_comment boolean            是否允许所有人对我的微博进行评论,true:是,false:否
avatar_large       string                  用户头像地址(大图),180×180像素
avatar_hd          string                  用户头像地址(高清),高清头像原图
verified_reason    string                 认证原因
follow_me          boolean               该用户是否关注当前登录用户,true:是,false:否
online_status      int                      用户的在线状态,0:不在线、1:在线
bi_followers_count  int                  用户的互粉数
lang                  string                  用户当前的语言版本,zh-cn:简体中文,zh-tw:繁体中文,en:英语
阅读(678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~