this is a weibo for test

今天研究了一天新浪open api的授权,遇到各种问题,比较郁闷,最后终于成功通过api发了一条微博,总结一下。

PS:粗略浏览了新浪提供的API还是有很多功能,感觉很不错,可惜就是没有一个好用的入门手册,有些坑就是等着别人去跳的。

新浪API主要针对三类应用,网站,客户端(移动/PC),站内应用。只要注册了新浪微博账号,就可以创建应用。我研究的是PC客户端 C++接口,一开始新建的应用是站内应用,要在PC本地上进行授权,老是各种问题,后来重新建了一个应用,选择“移动应用”,创建的时候选择“桌面”即可。

创建好应用之后,要使用接口需要授权,授权用的是OAuth2.0,这个是一个通用的授权框架,具体见http://oauth.net/2/,很多网站的授权都用的这个玩意。

下面看一下OAuth2.0的流程,有两种方式,下面讲解第一种方式

其中Client指第三方应用,Resource Owner指用户,Authorization Server是我们的授权服务器,Resource Server是API服务器。

1 第三方应用打开一个网页给用户,这个网页是新浪微博提供的,让用户授权第三方应用读取用户信息

2 用户授权后,新浪微博的授权页面会向第三方应用返回一个授权码,第三方应用根据授权码到鉴权服务器获取一个令牌环,用作后续调用接口的依据

3 第三方应用根据令牌环调用新浪微博的API

上面第一步叫做OAuth2/authorize,第二步叫做OAuth2/access_token,这两个步骤完成授权。

还有一种方式,不需要第一步,第二部里面不需要授权码,但是需要密码。密码是我们创建的应用通过新浪审核之后,可以在“接口管理”里面申请的。注意这个玩意,就是个坑,新浪的说明里面没有提到这种方式。

我用weibo c++接口首页的例子,里面没有第一步,直接到第二步,就是第二种方式。我一开始没有搞明白第一种与第二种的区别,把第一种方式的授权码用到第二种里面,一直行不通。

这两种方式在c++接口中,对应的接口如下

eWeiboResultCode oauth2(const char* userName, const char* password, UserTaskInfo* pTask = NULL);
eWeiboResultCode oauth2Code(const char* authCode, const char* url, UserTaskInfo* pTask = NULL);

oauth2第一和第二个参数是微博用户名和密码,oauth2Code的第一个和第二个参数是授权码和授权回调url地址

根据OAuth2.0,使有oauth2Code成功发送了一条微博。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值