Android社交登錄授權、分享SDK,支持微信、微博和QQ

jopen 9年前發布 | 20K 次閱讀 Android Android開發 移動開發

社交登錄授權,分享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" />
  • ProGrard代碼混淆

項目主頁:http://www.baiduhome.net/lib/view/home/1448418234907

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!