网页授权获取用户基本信息
(→不弹出授权页面的快速获取uid的流程) |
|||
第5行: | 第5行: | ||
===不弹出授权页面的快速获取uid的流程=== | ===不弹出授权页面的快速获取uid的流程=== | ||
在粉丝服务平台中,用户跳转到第三方H5页面后,很多时候第三方仅仅想获取到用户的uid信息,并且不希望弹出授权页面从而提高转化率;在这种情况下,第三方可以通过加入snsapi_base应用授权作用域参数来使用不弹出授权页面的快速授权流程: | 在粉丝服务平台中,用户跳转到第三方H5页面后,很多时候第三方仅仅想获取到用户的uid信息,并且不希望弹出授权页面从而提高转化率;在这种情况下,第三方可以通过加入snsapi_base应用授权作用域参数来使用不弹出授权页面的快速授权流程: | ||
− | |||
1. 使用snsapi_base(不弹出授权页面,直接跳转,只能获取用户uid)这个scope来引导需要授权的用户到如下地址 | 1. 使用snsapi_base(不弹出授权页面,直接跳转,只能获取用户uid)这个scope来引导需要授权的用户到如下地址 |
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" }