调用腾讯微博开放平台出现的错误和解决办法
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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)