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。