调用腾讯微博开放平台出现的错误和解决办法


 response{"data":null,"detailerrinfo":{"accesstoken":"","apiname":"weibo.user.info","appkey":"801306361","clientip":"110.184.110.97","cmd":0,"proctime":0,"ret1":3,"ret2":3,"ret3":101,"ret4":2502133002,"timestamp":1372144511},"errcode":101,"msg":"missing parameter","ret":3,"seqid":5893315800140711293}


从信息可以看出:缺少必要的参数。向oAuthV2对象中加入参数——

oAuthV2.setOpenid("opnid");   //opnid:授权成功后,返回的oAuthV2里面用 getOpenid() 方法获取

oAuthV2.setOpenkey("opkey");   //getOpenkey() 获得


还有加上

oAuth.setClientId(app_key);   //申请的app——key

oAuth.setClientSecret(clientSecret);  //注册时候获得

在第一次授权后,我们把

oAuthV2保存在了SharedPreferences里面,应该少保存了2个数据:openid,和 opkey,和新浪微博的有些不一样,新浪的只需要保存token,和过期时间。


腾讯的还需要保存:openid,和 opkey,在我们发送微博的时候需要用到2个参数。

 

public staticvoid saveDate(Context context, OAuthV2 token) { //保存第一次授权后,获取的OAuthV2,注意红色部分,必须保存

preferences = context

.getSharedPreferences("tenxun", Context.MODE_PRIVATE);

Editor editor = preferences.edit();

editor.putString("token", token.getAccessToken());

editor.putString("expiresTime", token.getExpiresIn());

editor.putString("openid", token.getOpenid()); 

editor.putString("opkey", token.getOpenkey());

editor.commit();

 

}

public static OAuthV2 getDate(Context context)    //获取保存的oAuthV2,注意红色部分

{

OAuthV2 oAuthV2=new OAuthV2();

preferences = context

.getSharedPreferences("tenxun", Context.MODE_PRIVATE);

 

oAuthV2.setAccessToken(preferences.getString("token",""));

oAuthV2.setExpiresIn(preferences.getString("expiresTime",null));

oAuthV2.setOpenid(preferences.getString("openid", null));

oAuthV2.setOpenkey(preferences.getString("opkey", null));

return oAuthV2;

}

 




 

posted @ 2013-06-25 20:41  jlins  阅读(580)  评论(0编辑  收藏  举报