梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

微博开发事项

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 来判断是否已经关注了,如果已经关注了,就无须调用上面的关注接口,否则才调用关注接口。

总之,遇到错误的话,首先要认真检查请求的参数。

posted on 2012-04-09 17:58  梦书  阅读(395)  评论(0编辑  收藏  举报