公司项目需要接入新浪微博,研究了三天了,一直没成果,遇到一个问题一直卡死,不知道怎么处理,经过千方百计的寻找、试验,终于找到解决办法,真可谓唐僧取经,历尽九九八十一难,结果如下,授权登录成功,获取到用户信息,解决办法分享如下:
1:首先要作好准备工作,保证APP_KEY,REDIRECT_URL,SCOPE参数配置正确,APP_KEY需要在新浪官方申请,REDIRECT_URL为回调的处理地下,一定要写,SCOPE可不动,就用官方提供的,同时将自己电脑中的.android目录下的debug.keystore文件更换为新浪官方提供的debug.keystore文件
2:登录的Activity必须重写onActivityResult的方法
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// SSO 授权回调
// 重要:发起 SSO 登陆的 Activity 必须重写 onActivityResult
if (mSsoHandler != null) {
mSsoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
3: 创建微博实例
mWeiboAuth = new WeiboAuth(this, Constants.APP_KEY,
Constants.REDIRECT_URL, Constants.SCOPE);
4:点击按钮时,执行如下方法
mSsoHandler = new SsoHandler(WBAuthActivity.this,mWeiboAuth);
mSsoHandler.authorize(new AuthListener());
5:onComplete方法中就可以获知授权结果,不论成功或者失败,失败的话也会返回errorCode,异常的话,会进入onWeiboException方法,可根据情况具体处理;成功后保存授权信息:AccessTokenKeeper.writeAccessToken(WBAuthActivity.this,
mAccessToken);
6: 最关键的一步:需要发送http请求,把参数赋给新浪,返回的entity中就是获取到的用户数据!!!
真是太高兴了,处理了这么多天,终于搞定了,新浪的API文档写的真不咋地,百度map的就感觉很明了,好用!码农的价值在哪里体现,就在这里!!!