1. 程式人生 > >Android平臺接入Facebook登入

Android平臺接入Facebook登入

開發環境為Android Studio,官方要求SDK最低版本為“API 15: Android 4.0.3”。

一、建立應用

1、啟用賬號

按照要求建立APP,生成appId。

這裡寫圖片描述

注意:在填寫APP名稱的時候,不能包含任何有關facebook的名字或簡寫,否則無法通過。

2、配置Gradle檔案

配置app下的build.gradle檔案。
如下:

//新增到dependencies之前
repositories { 
    mavenCentral() 
}

在dependencies中新增

compile 'com.facebook.android:facebook-android-sdk:4.6.0'

3、新增PackName和Default Activity Class Name

這裡寫圖片描述

4、生成KeyHash並新增到指定位置

生成方式參照“三、Facebook登入Key Hash配置”,生成的Key Hash新增到對應的位置中,區別測試和釋出版本。

二、客戶端接入

1、Facebook 統計

如果需要統計app啟動 安裝等相關資料,可以在MainActivity中呼叫如下程式碼:

@Override
protected void onResume() {
    super.onResume();
    // Logs 'install' and 'app activate' App Events.
AppEventsLogger.activateApp(this); } @Override protected void onPause() { super.onPause(); // Logs 'app deactivate' App Event. AppEventsLogger.deactivateApp(this); }

2、初始化Facebook

在Activity或者Application的onCreate中對Facebook進行初始化。

FacebookSdk.sdkInitialize(getApplicationContext());

3、新增Facebook App ID,宣告許可權

App ID進入到下圖所示介面可以檢視

這裡寫圖片描述

注意:AppID必須新增到strings.xml中,string名字必須是facebook_app_id。

宣告許可權 <uses-permission android:name="android.permission.INTERNET"/>

4、在application中新增meta-data

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

5、註冊callback

callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(...);

在使用者成功授權之後,回撥onActivityResult(),需要重寫 onActivityResult()

callbackManager.onActivityResult(requestCode, resultCode, data);

6、執行登入操作

LoginManager.getInstance().
    logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));

7、獲取AccessTokens

AccessToken accessToken = AccessToken.getCurrentAccessToken();

如果accessToken!=null或者accessToken沒有過期,則可以通過accessToken直接獲取登入token,accessToken.getToken()
否則再登陸成功之後,通過loginResult獲取loginResult.getAccessToken().getToken()

三、Facebook登入Key Hash配置

1、下載並安裝OpenSSL

這裡寫圖片描述

將下載的軟體安裝到預設路徑中,預設路徑為C盤,執行cmd,在命令列中進入 openssl.exe的路徑,一般為 C:\OpenSSL-Win32\bin 。

2、生成Key Hash值

使用命令:

Keytool -exportcert -alias <YourAppKetStoreAlias> -keystore <KeyStorePath> | openssl sha1 -binary | openssl base64

注意: 應該為 遊戲線上apk簽名檔案的alias,應該為簽名檔案keystore的所在路徑。

執行後 提示“輸入金鑰庫口令”,則輸入口令並回車。點選回車出現的28位字串,即為需要的key Hash值。

如果遇到出現警告,該警告可忽略。

在紅色框內填入前面獲取到的key hash值,然後點選右下角的 Save Changes按鈕儲存配置。
這裡寫圖片描述

四、Facebook開發模式修改為線上模式

在開發模式下,只能使用facebook後臺新增的開發者賬號進行登入,其他賬號無法正常登陸。等APP上線時,需要將facebook的開發模式修改。

1、填寫Contact Email(必填)

在應用的setting–>Basci中,填寫Contact Email,如圖:

這裡寫圖片描述

2、切換模式

切換到 Status&Review頁面,修改2處按鈕為Yes。

這裡寫圖片描述