Android Studio Facebook 的登入與基本權限


第一步:前置任務確認
1.使用 Maven 檔案庫來下載設定相關函式庫

當本機的Gradle檔案庫中沒有需要的函式庫時,會自動連到網路上的Maven檔案庫,下載必要的函式庫後,並儲存在本機>目錄下的「.gradle」子目錄。

build.gradle 中的 buildscript,要有程式碼:
repositories {
jcenter()
}






app下的 build.gradle 要有程式碼:
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'



2.設定應用程式編號
在String.xml下設定你的應用程式編號,之後較方便取得。
請確認 /app/res/values/String.xml 檔案內有沒有以下程式碼,沒有的話請打上:
<string name="facebook_app_id">你的APP_ID
</string>
<string name="fb_login_protocol_scheme">fb你的APP_ID</string>

3.將APP與你的套件名稱和預設類別建立連結, 並填入每台電腦的開發金鑰
第二步:新增登入按鈕

1.輸入資料
打開 AndroidManifest.xml 檔案,加入以下程式碼: <uses-permission android:name="android.permission.INTERNET"/>
加入網路權限 <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>





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

2.擺放登入按鈕
到layout資料夾下的 activity_main.xml 檔,輸入以下程式碼: <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"/>







之後到 MainActivity.java:
若要新增按鈕,必須同時更新activity 才能使用。自訂 Login button 的屬性,並在 onCreate() 方法中,寫一個registerFacebook()的方法,包含初始化以及按下按鈕後的一些結果。
請輸入以下程式碼: LoginButton loginButton; CallbackManager callbackManager;
將一些必要元件匯入後,在registerFacebook()方法中 輸入以下程式碼: callbackManager = CallbackManager.Factory.create(); loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions("email"); loginButton.registerCallback(callbackManager,new FacebookCallback<LoginResult>(){}
之後 override method,加入onSuccess,onCancel,onError。

(鼠標右鍵—>Generate(生成)—>選擇導入implements methods或者Override methods或者get/set方法。)






繼續在MainActivity貼上程式碼: protected void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);} 



3.在專案中檢查是否登入成功 
在Layout資料夾的activity_main.xml上,拉一個按鈕元件。

在MainActivity輸入以下程式碼
Button fb = findViewById(R.id.myfb); fb.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public profile")); } });



留言

這個網誌中的熱門文章

Android Studio 專案結合JSON網站服務

Android Studio 新增 Facebook SDK 到你的專案