weiboApi = WeiboShareSDK.createWeiboAPI(context, Constants.WEIBO_APP_KEY);
weiboApi.registerApp();
final AuthInfo authInfo = new AuthInfo(context, Constants.WEIBO_APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);
ssoHandler = new SsoHandler((Activity) context, authInfo);
ssoHandler.authorize(new WeiboAuthListener() {
@Override
public void onComplete(Bundle bundle) {
Log.i("haha","认证完成");
Oauth2AccessToken mAccessToken = Oauth2AccessToken.parseAccessToken(bundle);
if (mAccessToken.isSessionValid()) {
String weibo_token = mAccessToken.getToken();
//weiboApi.sendRequest((Activity) context, weibo_request);
weiboApi.sendRequest((Activity) context, weibo_request, authInfo, weibo_token, new WeiboAuthListener() {
@Override
public void onComplete(Bundle bundle) {
Constants.getToastView(context,"分享成功").show();
}
@Override
public void onWeiboException(WeiboException e) {
Constants.getToastView(context,"分享异常").show();
}
@Override
public void onCancel() {
Constants.getToastView(context,"取消分享").show();
}
});
}
}
@Override
public void onWeiboException(WeiboException e) {
Log.i("haha","认证异常:message:"+e.getMessage()+" local:"+e.getLocalizedMessage()+" cause: "+e.getCause());
}
@Override
public void onCancel() {
Log.i("haha","认证退出");
}
我调用微博分享是出现这样的状况:
调用web授权分享成功,调用客户端授权分享 发现 到授权界面后直接闪退回自己的APP界面。
开始一直以为是分享的代码有问题。然后打印Log发现,授权没有回调,自己去查看最新的微博sdk文档,发现自己在activity的onActivityResult没有回调(之前写了的,后来修改代码删除,又忘记加上了)。
if(dialog_share != null && dialog_share.getSsoHandler() != null)
{
dialog_share.getSsoHandler().authorizeCallBack(requestCode,resultCode,data);
}
在activity的onActivityResult中加上ssoHandler的回调方法。
并且以上我写的分享代码 中的 分享结果的回调只能在 web授权分享才有。如果想客户端授权分享 想要有分享结果的回调,则必须实现
(1)修改AndroidManifest.xml
(2)Activity实现IWeiboHandler.Response接⼜
(3)Activity处理IWeiboHandler.Response的⽅法
(4)Activity处理onNewIntent⽅法
开始微博分享前,
在AndroidManifest.xml中为当前分享所在页⾯的Activity添加接收消息intent-filter,声明Action为:com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY
在分享当前页⾯实现WeiboHandler.Response接⼜,
实现Activity的onNewIntent方法。
详细请看微博sdk文档。地址:https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/%E6%96%B0%E6%96%87%E6%A1%A3