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


 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;

}





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值