设为首页收藏本站

UNIX技术社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: console
查看: 2270|回复: 0

新浪/腾讯微博api开发总结.

[复制链接]
发表于 2012-6-19 18:04:02 | 显示全部楼层 |阅读模式
                                                                                                                1. 授权机制方面sina已经停止新应用的oauth1.0的授权, 所以只能使用oauth2.0, tx方面还是可以继续使用oauth1.0. 虽然2.0更简单安全, 但access_token的7天就会过期.
2. 总的来说新浪的开放平台更出色, 文档全面, 错误代码和原因很全面, 返回值也详细. tx就弱太多了. 会返回很多文档上没有说明的错误代码. 论坛也没有有效回复. 而新浪几乎每个贴都有版主回复, 回复也很专业. tx的开放论坛只有水军.
遇到的一些问题及解决:
1. tx的POST数据方面是不接受把认证相关的字段放在http头部, 可以放uri 或 实体里
2. oauth1.0的签名是比较麻烦的. 建议使用liboauth, liboauth里用到了openssl来做HMAC-SHA1其它方面依赖很小, curl可以用wininet等相关替代, HMAC-SHA1算法也可以在msdn里找到替代. 所以在windows下liboauth可以很方便的移值过来.
3. 腾讯微博在开发过程中我也遇到了一些问题.
1> 其web版api调度工具实际是有问题的, 填正确的参数也会提示错误. 因为oauth的签名对每个字段的相对位置是有要求的, 需要排序过后算签名, 在提交的时候一定要按同样的次序. 否则会失败.
2> 发图片时需要用form-data的方式提交, 可以把oauth相关的字段放在uri里, 也可以把全部字段放在实体里面, 需要注意的是签名计算过程时相关参数都需要做urlencode, 而form-data中不能urlencode, 以utf-8编码即可, 甚至不能多加空格. 多加一个空格也会返回check sign error.
3> form-data的末尾的\r\n也是不能少的.
{"data":null,"msg":"check sign error","ret":3} // 这类错误属于签名的验证错误, 检查参数顺序, urlencode, 空格等问题.
{"data":null,"errcode":9,"msg":"server error","ret":4} 的请确认你要发的微博里是否包含广告,恶意链接、黑名单号码等被腾讯微博过滤。
{"data":null,"errcode":8,"msg":"server error","ret":4} 的请确认你要发的微博里是否包含内容超过最大长度:420字节 (以进行短url处理后的长度计)被腾讯微博过滤。
{"data":null,"errcode":12,"msg":"server error","ret":4} 的请确认你要发的微博是否重复发表被腾讯微博过滤。
{"data":null,"errcode":10,"msg":"server error","ret":4} 的请确认你要发的微博是否发表太快,被频率限制被腾讯微博过滤。
{"data":null,"errcode":4,"msg":"server error","ret":4} 的请确认你要发的微博是否脏话过多被腾讯微博过滤。
                               

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表