新浪微博第三方登录验证及遇到问题 Android端
2017-01-10 00:55
603 查看
第三方登录 :新浪微博
首先:新浪微博github:https://github.com/sinaweibosdk/weibo_android_sdk
新浪开发者平台:http://open.weibo.com/
1.注册账号:http://open.weibo.com/
android包名 签名都 要填一个的 获取签名软件的地址 新浪已经给了(https://github.com/mobileresearch/weibo_android_sdk/blob/master/app_signatures.apk)注意 :把这个软件安装到手机上,然后输入包名 就能获取到签名,但是你的软件要安装到手机上(要获取签名的软件)
2. 高级信息里 -OAuth2.0 授权设置 :这个设置要和 Constants 里的REDIRECT_URL 一致 不然出问题。
3. 下载个demo 把里面的libs包的文件夹及SO文件拷贝,导入weibosdkcore.jar。
4. 清单文件注册权限。
5. 清单文件注册activity和service
<activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="adjustResize" android:exported="false" > </activity> <service android:name="com.sina.weibo.sdk.net.DownloadService" android:exported="false"> </service>
这里的 DownloadService 报红,不用管。(登录用不到可以不写)
6.微博登录有三种方式:1,SSO 授权 2,Web 授权 3,SSO 授权+Web 授权 混合授权 github有介绍,一般都是用混合的。
soo授权: 调用这个
mSsoHandler.authorizeWeb(new AuthListener());
web授权:
mSsoHandler. authorizeClientSso(new AuthListener());
混合的:
mSsoHandler. authorize(new AuthListener());
7 把 Constants 这个从demo里扣出来 里面的参数替换成自己的。AccessTokenKeeper 这个也扣出来,放自己代码里。
8. 代码:
mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE); mSsoHandler = new SsoHandler(WBAuthActivity.this, mAuthInfo); findViewById(R.id.obtain_token_via_signature).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mSsoHandler.authorize(new AuthListener()); } }); public class AuthListener implements WeiboAuthListener { @Override public void onComplete(Bundle values) { // 从 Bundle 中解析 Token mAccessToken = Oauth2AccessToken.parseAccessToken(values); //从这里获取用户输入的 电话号码信息 String phoneNum = mAccessToken.getPhoneNum(); if (mAccessToken.isSessionValid()) { // 保存 Token 到 SharedPreferences AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken); } else { // 以下几种情况,您会收到 Code: // 1. 当您未在平台上注册的应用程序的包名与签名时; // 2. 当您注册的应用程序包名与签名不正确时; // 3. 当您在平台上注册的包名和签名与您当前测试的应用的包名和签名不匹配时。 String code = values.getString("code"); String message = getString(R.string.weibosdk_demo_toast_auth_failed); if (!TextUtils.isEmpty(code)) { message = message + "\nObtained the code: " + code; } Toast.makeText(WBAuthActivity.this, message, Toast.LENGTH_LONG).show(); } } @Override public void onCancel() { } @Override public void onWeiboException(WeiboException e) { } }
代码很少 ,都是demo里WBAuthActivity 这个类里的代码,注释很清晰。这样就可以基本集成sina登录了。
容易出现的问题有两个:
1,出现 21322 错误 这是因为上面的第二步,不一致导致的,填写一致就可以解决。2,“Caused by: java.lang.UnsatisfiedLinkError: Couldn’t load weibosdkcore: findLibrary returned null ” 解决方法 src/main下面建立文件夹 jniLibs 然后把libs下面包含so文件的文件夹复制过来 ,clean一下。这个问题也使用其他的,之前做百度地图也有类似的错误。解决方法相同。
相关文章推荐
- Android新浪微博第三方登录的一些问题
- android_实现微信第三方登录吊起授权遇到无法吊起页面问题
- 第三方登录开发过程中遇到问题及解决方案
- qq登录,新浪微博登录接口申请过程中遇到的问题
- ShareSDK第三方分享与登录遇到的问题
- Android Ant 自动打包带第三方库遇到的一些小问题
- 用新浪微博java SDK进行OAuth2验证遇到的一些问题
- Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
- 新浪微博 sso 登录 iOS遇到的几个问题
- QQ、sina第三方登录遇到的问题
- Android高效率编码-第三方SDK详解系列(二)——Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能
- Android 新浪微博第三方登录
- android开发--第三方平台登录分享问题
- android 新浪微博登录获取access_token值的问题
- SQL2005,windows身份验证登录后遇到的权限问题
- Android的集成新浪微博第三方登录
- Android 第三方分享中遇到的问题以及解决方案
- Android 第三方分享中遇到的问题以及解决方案
- 微信授权登录第三方app遇到的问题
- cocos2d-x 接入android ,登录第三方SDK时屏幕不断闪烁刷屏的问题解决