原文地址: https://www.cnblogs.com/e241138/archive/2013/03/15/sina-weibo-oauth-access_token.html

新浪微博开放平台 提供了丰富的API接口,利用这些接口,开发者能够开发出独具特色的微博应用。但是,大部分接口都需要用户授权给应用,应用利用授权得到的Access Token来调用相应的接口来获取内容。

新浪微博的授权机制目前主要有3种应用场景:

  1. Web应用
  2. 移动应用
  3. 站内应用

本文主要介绍Web应用如何授权、获取Access Token。

步骤一:添加网站

进入 新浪微博开放平台 ,进入“管理中心“,点击”创建应用”,选择“网页应用”,填写相应的信息后提交。

步骤二:Oauth2.0授权设置

应用创建完后可以在“管理中心”-“我的应用”中查看信息,在“应用信息”--“高级信息”中可以设置网站的授权回调页和取消授权回调页。

授权回调页非常重要,一定要填写正确,当用户授权成功后会回调到此页面,传回一个“code”参数,开发者可以用code换取Access Token值。

步骤三:引导用户授权

引导需要授权的用户到如下页面:

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

YOUR_CLIENT_ID:即应用的AppKey,可以在应用基本信息里查看到。

YOUR_REGISTERED_REDIRECT_URI:即之前填写的授权回调页,注意一定要完全相同。

如果用户授权成功后,会跳转到回调页,开发者此时需要得到url参数中的code值,注意code只能使用一次。

步骤四:换取Access Token

开发者可以访问如下页面得到Access Token:

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

这些参数就不一一介绍了。

如果都没有问题,就可以得到Access Token了,返回示例:

"access_token": "ACCESS_TOKEN", "expires_in": 1234, "remind_in":"798114", "uid":"12341234"

步骤五:调用API

获取到Access Token后,开发者可以保存它的值,调用API的时候直接用就可以了。Access Token有一定的有效期,过期后需要重新授权。

今天需要使用 新浪微博 提供的API 获取 微博的详细信息以及用户的详细信息,所以需要使用API中的/statuses/show接口。 使用 新浪微博 API的前提是需要到 新浪微博 开放平台注册一个应用,获得App Key和App Secret,然后再根据这两个 获取 Access Token 。下面详细介绍如何 获取 Access Token 以及如何使用 新浪微博 提供的API。 一、 获取 Access Token
access token 是应用方访问资源服务器的接口时,需要提供的一个令牌。拥有这个令牌代表着得到用户的 授权 。然而,这个 授权 应该是临时的,有一定有效期。这是因为, access token 在使用的过程中可能会泄露。给 access token 限定一个较短的有效期可以降低因 access token 泄露而带来的风险。 然而引入了有效期之后,应用方使用起来就不那么方便了。每当 ...
笔者在测试过程中发现,旧的appKey可以直接用response_type= token 的方式 授权 ,但是 授权 后会出现可以访问 新浪微博 的用户接口和关系接口,但是没办法访问微博接口,拿不到微博的数据.新申请的应用,则只能用response_type=code这种方式 授权 ,采用code 授权 后可以访问普通接口. 笔者测试时网络部分用的AFN框架,开发环境Xcode5,ARC.在用code方式时,第一步 获取 ...
2.微博账号成为开发者。 登录微博开放平台 登录你注册的账号,然后进入管理中心完善开发者基本信息和身份认证。 这个时候,还需要浏览一下微博开放平台的文档,来了解一些这个开放平台的一些规范性的名词。 每个链接都点进去看看,顺便看看微博API文档,你会发现,里边有介绍说,一些...
在 com.weibo.net. Token .java文件中 public void setExpiresIn(String expiresIn) { if (expiresIn != null && !expiresIn.equals("0")) { setExpiresIn(System.currentTimeMillis() + Integer.parseInt(exp... CSDNDEBUG_: 方向和选择,两者是辩证统一的关系,不存在哪个更重要,没有方向的努力容易付之东流,没有努力的方向也仅仅是开个好头。但是很多时候我们不真真实实的走几步,就只是通过一些第三方信息的输入,很难知道什么方向是适合自己的(有幸遇贵人相助的话的确是能避免很多弯路)。更多的情况是我们走了很多弯路,撞了很多南墙,才模模糊糊的知道自己真正想要什么,从我的视角来看,关于职业选择,第一步是走出去,哪怕当下的工作自己不确定是不是自己想要的(只要不是确定是自己不想要的就行),然后在工作的过程中,要多总结,多思考,思考这份工作能为自己带来什么,而自己又想要什么,以这样的思考为依据,辅之以第三方来佐证(行业内比较有经验的人),最后向自己想要的方向慢慢靠拢。 bash: rsync: command not found报错原因以及解决办法 黎猫大侠: 我也是这样,请问解决了吗? JavaScript中scope介绍 就很烦497: weixin_40620846: NOTICE: Extended attributes are not restored. Loading filesystem metadata ... 80 groups loaded. Loading journal descriptors ... 369 descriptors loaded. *** Error in `extundelete': double free or corruption (!prev): 0x0000000001b8c010 ***大佬咋弄? 电脑无法连接网络并诊断提示DNS服务器未响应的解决方法 2301_79165604: netsh winsock reset亲测有效