Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android資訊 >> Android社交登錄授權、分享SDK,支持微信、微博和QQ

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

編輯: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" />
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved