微博开发事项
1.首先要牢记的是:官网给出的SDK不是100%可行的,就算某个API可以用,但框架什么的可能不正确。
还有尤其要留心里面的静态类以及静态类中的成员变量(比如是否需要重新初始化)
比如:新浪微博SDK里面Utility.java中函数:
public static void setHeader(String httpMethod, HttpUriRequest request, WeiboParameters authParam, String url, Token token) throws WeiboException { ..... ..... if (!isBundleEmpty(authParam) && mAuth != null) { String authHeader = mAuth.getWeiboAuthHeader(httpMethod, url, authParam, Weibo.getAppKey(), Weibo.getAppSecret(), token); if (authHeader != null) { request.setHeader("Authorization", authHeader); } } ..... ..... }
尤其要注意其中的mAuth是一个静态的变量,另外,当接口是一个GET的时候, isBundleEmpty(authParam) 这个条件语句就会出现问题,导致
无法添加Oauth信息,从而导致返回鉴权失败。
2.API中的参数别传错了,因为不管是腾讯微博还是新浪微博,返回的错误码,不是100%有用的,
经常看到返回错误是“鉴权失败”
3.注意POST与GET的区别,针对微博的SDK。
4.请求地址别弄错了。
5.各个平台各有差别,有时还得变通下,比如关注这个API,新浪微博只要通过friendships/create 这个接口即可判断是否已经是关注了还是关注成功了。但是腾讯微博的接口:http://open.t.qq.com/api/friends/add, 不管您是否已经关注某用户,返回值都是一样的,这就给用户有点错觉,因此,在使用这个接口前,应先调用接口: http://open.t.qq.com/api/friends/check 来判断是否已经关注了,如果已经关注了,就无须调用上面的关注接口,否则才调用关注接口。
总之,遇到错误的话,首先要认真检查请求的参数。