FB的第三方登入

最麻煩的地方就是要設定Key了

這邊需要先確保你已經註冊並做好基本的FB綁定

可參考[Android] 19-1 FB API註冊

官網在這部分有介紹作法

 

1. 官網https://developers.facebook.com/docs/facebook-login/android

並且在一開始就選擇你的專案

01.png

 

2. 設定專案的名稱, 這邊就是你的package name

然後按下save

02.png

 

3. 接著要產生Key, 這邊需要安裝OpenSSL來產生

指令就按照官網的方式

ex: 

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\rx\.android\debug.keystore" | "C:\OpenSSL-Win64\bin\openssl" sha1 -binary | "C:\OpenSSL-Win64\bin\openssl" base64

03.png

 

4. 接著將產生的key填上後存檔

04.png

 

5. 然後到strings.xml 內加入

<string name="fb_login_protocol_scheme"> 你的ID </string>

05.png

 

6. 接著在AndroidManifest.xml內加入FB的Activity

<activity android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="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="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>

06.png

 

7. 在你想要的Layout上加入登入鈕

<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />

07.png

 

8. 然後在內部註冊登入

CallbackManager callbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("TAG", "GOGO");

callbackManager = CallbackManager.Factory.create();

FacebookSdk.setIsDebugEnabled(true);
FacebookSdk.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);

LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("TAG", "LoginResult = " + loginResult.toString());
}
@Override
public void onCancel() {
Log.d("TAG", "onCancel()");
}
@Override
public void onError(FacebookException exception) {
Log.d("TAG", exception.toString());
}
});
}

08.png

 

9. 最後在onActivityResult設定method就結束了

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
Log.d("TAG", "requestCode = " + requestCode);
}

09.png

arrow
arrow
    文章標籤
    Android FB Login Android FB 登入
    全站熱搜

    RX1226 發表在 痞客邦 留言(0) 人氣()