sina微博之errorcode:20003

来源:互联网 发布:php网站模板免费下载 编辑:程序博客网 时间:2024/05/16 06:53

在新浪微博授权后调用获取用户信息的接口时候会报以下错误(用户不存在):

错误原文:

com.sina.weibo.sdk.exception.WeiboHttpException: {"error":"User does not exists!","error_code":20003,"request":"/2/users/show.json"}

一开始,我很郁闷为什么获取不到user,后来仔细看了一边原码,才发现,这错误是有多幼稚,难怪百度半天都找不到。

给大家贴上源码

/**     * 根据用户ID获取用户信息。     *      * @param uid      需要查询的用户ID     * @param listener 异步请求回调接口     */    public void show(long uid, RequestListener listener) {        WeiboParameters params = new WeiboParameters(mAppKey);        params.put("uid", uid);        requestAsync(sAPIList.get(READ_USER), params, HTTPMETHOD_GET, listener);    }        /**     * 根据用户昵称获取用户信息。     *      * @param screen_name 需要查询的用户昵称     * @param listener    异步请求回调接口     */    public void show(String screen_name, RequestListener listener) {        WeiboParameters params = new WeiboParameters(mAppKey);        params.put("screen_name", screen_name);        requestAsync(sAPIList.get(READ_USER), params, HTTPMETHOD_GET, listener);    }
这里获取用户信息有两种,前者是uid,后者是screen_name。

sina sdk代码中是这样获取的

//就会去触发用户信息访问的接口                mUsersAPI.show(mAccessToken.getUid(), mListener);
一比较,就很容易知道缘由
或许看过后你就恍然大悟,如果传入的是字符串那么默认调用下面这个接口,所以会报 User does not exists!

如果传入的是long类型,那么调用的是上面那个接口,根据uid查询用户信息。


PS:切勿将uid作为字符串进行调用接口!



0 0
原创粉丝点击