Android社交登入授權、分享SDK,支援微信、微博和QQ
社交登入授權,分享SDK
支援微信、微博、QQ登入授權
微信好友、微信朋友圈、微博、QQ好友、QQ空間分享
Gradle
compile 'com.elbbbird.android:socialsdk:0.2.0@aar'
使用指南
Debug模式
SocialSDK.setDebugMode(true); //預設false
平臺SSO授權功能
ISocialOauthCallback授權回撥介面
授權結果回撥
SDK使用了Otto作為事件庫,用以元件通訊。(其實我是不想寫startActivityForResult …)
在呼叫SocialSDK.oauth()介面Activity的onCreate()方法內新增
BusProvider.getInstance().register(this);
在該Activity的onDestroy()方法新增
@Override protected void onDestroy() { BusProvider.getInstance().unregister(this); super.onDestroy(); }
新增回撥介面
@Subscribe public void onOauthResult(BusEvent event) { switch (event.getType()) { case BusEvent.TYPE_GET_TOKEN: SocialToken token = event.getToken(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_GET_TOKEN " + token.toString()); break; case BusEvent.TYPE_GET_USER: SocialUser user = event.getUser(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_GET_USER " + user.toString()); break; case BusEvent.TYPE_FAILURE: Exception e = event.getException(); Log.i(TAG, "onOauthResult#BusEvent.TYPE_FAILURE " + e.toString()); break; case BusEvent.TYPE_CANCEL: Log.i(TAG, "onOauthResult#BusEvent.TYPE_CANCEL"); break; } }
微博授權
配置微博後臺回撥地址
SDK的預設回撥地址為http://www.sina.com,需要在微博後臺配置,否則會提示回撥地址錯誤。
如果在SocialSDK.initWeibo()方法自定義了回撥地址,需要在後臺配置為相應地址。
oauth
SocialSDK.initWeibo("app_key"); SocialSDK.oauthWeibo(context);
onActivityResult
SocialSDK.oauthWeiboCallback(context, requestCode, resultCode, data);
revoke
SocialSDK.revokeWeibo(context);
微信授權
WXEntryActivity
建立包名:package_name.wxapi
在該包名下建立類WXEntryActivity繼承自WXCallbackActivity
package com.encore.actionnow.wxapi; public class WXEntryActivity extends WXCallbackActivity { }
AndroidManifest.xml
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
oauth
SocialSDK.initWeChat("app_id", "app_secret"); SocialSDK.oauthWeChat(context);
revoke
SocialSDK.revokeWeChat(context);
QQ授權
AndroidManifest.xml
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
以上配置中的XXXXXXXXX換成app_id.
oauth
SocialSDK.initQQ(app_id); SocialSDK.oauthQQ(context);
onActivityResult
if (requestCode == Constants.REQUEST_LOGIN || requestCode == Constants.REQUEST_APPBAR) { SocialSDK.oauthQQCallback(requestCode, resultCode, data); }
revoke
SocialSDK.revokeQQ(context);
SDK預設授權介面,展示全平臺授權介面
配置微博後臺回撥地址
SDK的預設回撥地址為http://www.sina.com,需要在微博後臺配置,否則會提示回撥地址錯誤。
如果在SocialSDK.init()方法自定義了回撥地址,需要在後臺配置為相應地址。
WXEntryActivity
建立包名:package_name.wxapi
在該包名下建立類WXEntryActivity繼承自WXCallbackActivity
package com.encore.actionnow.wxapi; public class WXEntryActivity extends WXCallbackActivity { }
AndroidManifest.xml
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="tencentXXXXXXXXX" /> </intent-filter> </activity>
以上配置中的XXXXXXXXX換成app_id.
oauth
SocialSDK.init("wechat_app_id", "wechat_app_secret", "weibo_app_id", "qq_app_id"); SocialSDK.oauth(context);
revoke
SocialSDK.revoke(context);
FAQ
關於三個平臺的賬號
微博應用程式註冊完成後,需要在後臺配置測試賬號,包名,簽名資訊,然後開始測試;
微信應用程式註冊後,需要配置包名和簽名,並提交稽核通過,可以獲得分享許可權。SSO登入許可權需要開發者認證。(保護費不到位,測試都不能做)
QQ需要在後臺配置測試賬號才能SSO登入。
是否需要配置許可權?
SDK已經在aar中新增三個平臺需要的許可權,以下
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
相關文章
- 微信授權登入
- 封裝QQ、微信、微博的第三方登入和分享封裝
- 關於QQ授權登入
- 【網頁登入】QQ 登入、微信登入、微博登入、GitHub 登入網頁Github
- Android 第三方登入之新浪微博授權登入Android
- 「新手上路」Go 微博授權登入Go
- java 微信授權登入配置Java
- 社會化登入分享-QQ SDK接入
- 社會化登入分享-新浪微博 SDK接入
- 微信小程式的授權登入微信小程式
- 微信授權和sdk加密演算法加密演算法
- ECshop 快捷登入外掛 支援QQ 支付寶 微博
- Java微信授權登入小程式介面Java
- #聊聊微信小程式使用者授權登入,無感知登入,強制授權~~~微信小程式
- 社會化登入分享-微信SDK接入
- Android 無需申請key直接呼叫微信/QQ/微博分享Android
- ajax 實現微信網頁授權登入網頁
- uni-app 微信小程式授權登入APP微信小程式
- 微信網頁授權登入(c# Webform)網頁C#WebORM
- 微信小程式授權登入最佳實踐微信小程式
- 如何在自己的網站上實現QQ授權登入?網站
- .NET Core企業微信網頁授權登入網頁
- C#微信網頁授權登入(NET MVC)C#網頁MVC
- 小程式登入、微信網頁授權(Java版)網頁Java
- 微信授權註冊或微信登陸 微信授權登陸 基於若依vue 實現Vue
- Vue微信專案按需授權登入策略實踐Vue
- 微信 OAuth 授權域名支援兩個OAuth
- 微信小程式授權登入獲取使用者資訊微信小程式
- 第三方微信登入 | 靜默授權與網頁授權的實現網頁
- Java QQ授權第三方登陸Java
- [API 寫法] QQ 登入、微信登入、Facebook、google、蘋果登入APIGo蘋果
- 使用第三方APPKey授權 跳轉登入 QQAPP
- 基於Taro框架的微信小程式JWT授權登入方案框架微信小程式JWT
- 原生微信網頁授權登入(藉助natapp穿牆)網頁APP
- cocos2dx3.15接入微信SDK實現登入和分享android studio2.3.3Android
- 自定義QQ和微信分享卡片
- 微信開發筆記——微信網頁登入授權,獲取使用者資訊筆記網頁
- laravel使用EasyWeChat 授權登入Laravel