网页授权获取用户基本信息

跳转到: 导航, 搜索
(不弹出授权页面的快速获取uid的流程)
 
(未显示2个用户的16个中间版本)
第1行: 第1行:
如果用户在微博中(Web微信除外)访问开发者的第三方网页,开发者可以通过此接口获取当前用户基本信息(包括昵称、性别、城市、国家)。利用用户信息,可以实现体验优化、用户来源统计、帐号绑定、用户身份鉴权等功能。
+
===常规授权流程===
请注意,“获取用户基本信息接口是在用户和公众号产生消息交互时,才能根据用户OpenID获取用户基本信息,而网页授权的方式获取用户基本信息,则无需消息交互,只是用户进入到公众号的网页,就可弹出请求用户授权的界面,用户授权后,就可获得其基本信息(此过程甚至不需要用户已经关注公众号。)”
+
新浪微博支持OAuth2.0授权流程,具体请参考 [[授权机制|授权机制]]
  
  
本接口是通过OAuth2.0来完成网页授权的,是安全可靠的,关于OAuth2.0的详细介绍,可以参考OAuth2.0协议标准。在微信公众号请求用户网页授权之前,开发者需要先到公众平台网站的我的服务页中配置授权回调域名。请注意,这里填写的域名不要加http://
+
===不弹出授权页面的快速获取uid的流程===
 
+
在粉丝服务平台中,用户跳转到第三方H5页面后,很多时候第三方仅仅想获取到用户的uid信息,并且不希望弹出授权页面从而提高转化率;在这种情况下,第三方可以通过加入snsapi_base应用授权作用域参数来使用不弹出授权页面的快速授权流程:
 
+
===不弹出授权页面的快速授权流程===
+
在粉丝服务平台中,用户跳转到第三方H5页面后,很多时候第三方仅仅想获取到用户的uid信息,并且不希望弹出授权页面从而提高转化率;在这种情况下,第三方可以使用不弹出授权页面的快速授权流程:
+
使用应用授权作用域,snsapi_base ;
+
  
 
1. 使用snsapi_base(不弹出授权页面,直接跳转,只能获取用户uid)这个scope来引导需要授权的用户到如下地址
 
1. 使用snsapi_base(不弹出授权页面,直接跳转,只能获取用户uid)这个scope来引导需要授权的用户到如下地址
第14行: 第10行:
 
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&scope=snsapi_base
 
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&scope=snsapi_base
 
</pre>
 
</pre>
 +
如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE
  
 +
<font style="color:red">需要特别注意的是</font>:
  
2. 如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE
+
第一,第三方需要通过UA判断用户来自PC端还是来自移动端;
 +
如果用户来自移动端,则需要使用open.weibo.cn上的授权接口,并且添加下<font style="color:red">display=mobile</font>参数,调用地址如下:
 +
<pre>
 +
https://api.weibo.cn/oauth2/authorize?client_id=YOUR_CLIENT_ID&display=mobile&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&scope=snsapi_base
 +
</pre>
 +
第二,<font style="color:red">snsapi_base与其他scope权限是互斥关系</font>,也就是如果传入snsapi_base,微博平台就不识别其余的scope参数;
 +
更多关于scope的知识,可以参考http://open.weibo.com/wiki/Scope
  
  
3. 换取Access Token
+
2. 用code换取uid
开发者请注意,这里通过code换取的网页授权access_token,与 [[Messages_api_start|申请消息接口]] 中“第三步:成为开发者,获取access_token”中的access_token是不同的;
+
第三方可通过下述接口来获取网页授权access_token。但是如果scope=snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了uid,snsapi_base式的网页授权流程即到此为止。
+
  
 +
接下来,第三方可通过下述接口来获取用户uid,snsapi_base式的网页授权流程即到此为止。
 
<pre>
 
<pre>
 
https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
 
https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
第29行: 第32行:
  
 
正确时返回JSON数据包如下:
 
正确时返回JSON数据包如下:
 
 
<pre>
 
<pre>
 
{  
 
{  
"access_token":"ACCESS_TOKEN",  
+
"access_token":"",   //走snsapi_base式的网页授权流程,则access_token字段为空
 
"remind_in":3600,  
 
"remind_in":3600,  
 
"expires_in":3600,
 
"expires_in":3600,

2014年5月21日 (三) 21:58的最后版本

常规授权流程

新浪微博支持OAuth2.0授权流程,具体请参考 授权机制


不弹出授权页面的快速获取uid的流程

在粉丝服务平台中,用户跳转到第三方H5页面后,很多时候第三方仅仅想获取到用户的uid信息,并且不希望弹出授权页面从而提高转化率;在这种情况下,第三方可以通过加入snsapi_base应用授权作用域参数来使用不弹出授权页面的快速授权流程:

1. 使用snsapi_base(不弹出授权页面,直接跳转,只能获取用户uid)这个scope来引导需要授权的用户到如下地址

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&scope=snsapi_base

如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE

需要特别注意的是

第一,第三方需要通过UA判断用户来自PC端还是来自移动端; 如果用户来自移动端,则需要使用open.weibo.cn上的授权接口,并且添加下display=mobile参数,调用地址如下:

https://api.weibo.cn/oauth2/authorize?client_id=YOUR_CLIENT_ID&display=mobile&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&scope=snsapi_base

第二,snsapi_base与其他scope权限是互斥关系,也就是如果传入snsapi_base,微博平台就不识别其余的scope参数; 更多关于scope的知识,可以参考http://open.weibo.com/wiki/Scope


2. 用code换取uid

接下来,第三方可通过下述接口来获取用户uid,snsapi_base式的网页授权流程即到此为止。

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

(其中client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET可以使用basic方式加入header中)

正确时返回JSON数据包如下:

{ 
"access_token":"",   //走snsapi_base式的网页授权流程,则access_token字段为空
"remind_in":3600, 
"expires_in":3600,
"uid":"UID",
"scope":"snsapi_base"
}
文档更新时间: 2014-05-21