最近在实现腾讯微博的sso登陆后发布微博接口,遇到了:
check sign error
的问题,在网上查了一下没有找到解决方案,只是有一个地儿说app key设置的有问题会报这个问题。我是按官方给的demo实现的,对照了半天也没发现自己哪儿有问题,但是当看到官方demo的WeiboAPI.java中的addweibo方法时发现了问题,
- public void addWeibo(Context context, String content,String format,double longitude,double latitude,int syncflag,int compatibleflag, HttpCallback mCallBack,
- Class<? extends BaseVO> mTargetClass, int resultType) {
- ReqParam mParam = new ReqParam();
- mParam.addParam("oauth_version", "2.a");
- mParam.addParam("oauth_consumer_key",
- Util.getSharePersistent(context, "CLIENT_ID"));
- mParam.addParam("openid", Util.getSharePersistent(context, "OPEN_ID"));
- mParam.addParam("scope", "all");
- mParam.addParam("format", format);// 返回数据的格式
- mParam.addParam("content", content);
- mParam.addParam("clientip", Util.getLocalIPAddress(context));
- if(longitude!=0d){
- mParam.addParam("longitude", longitude);
- }
- if(latitude!=0d){
- mParam.addParam("latitude", latitude);
- }
- mParam.addParam("syncflag", syncflag);
- mParam.addParam("compatibleflag", compatibleflag);
- startRequest(context,SERVER_URL_ADDWEIBO, mParam, mCallBack,
- mTargetClass, BaseAPI.HTTPMETHOD_POST, resultType);
- }
其中的
[java]
view plain
copy
- mParam.addParam("oauth_consumer_key", Util.getSharePersistent(context, "CLIENT_ID"));
client_id字段在我登陆成功后保存时直接用的demo中的Util.saveSharePersistent(context, "CLIENT_ID", Util.getConfig().getProperty("APP_KEY"));我没有按照他把app_key存到文件中,因此当util去文件中找相应的参数的时候自然是找不到的,在登录的时候记得把自己的应用的key存到“CLIENT_ID”对应的值下,这样问题就解决了。
希望大家不要重走我的弯路,遇到问题,先从根源分析问题,看一眼源码能够更快找到问题的原因。