close

現在很多App要登入都可以選擇利用Facebook來做登入的動作

下面就照著官方教學再加上沒有講到的地方做補充


官方教學網址

Step 1:

如果是之前有開發過專案直接搜尋

那如果沒有的話就選擇建立新應用程式

輸入你想要顯示的名稱就可以了

 

Step 2:

這一步我沒有執行

只是我猜應該是手機應該要有Facebook這個App

現在人的手機應該都已經有了

所以就不用再另外下載了

 

Step 3:

這裡我選擇的是利用MAVEN的方式

按照他說的更改Gradle的相關配置就可以了

有一點要特別注意不知道為什麼我的Android Studio對於implementation這個用法都不給過

所以我是改成compile 'com.facebook.android:facebook-login:[4,5)'

 

Step 4:

擷取.PNG

記得!!他跟你說新增以下的項目

就乖乖地按照他給你的複製貼上就對了

之前在做的時候看人家的教學在第二步的時候一直用到別人的

然後就一直不給過

 

Step 5:

到你的程式裡面找出他要你填的資料

擷取.PNG

套件名稱就到AndriodManifest裡面找到package就可以了

至於預設Activity類別名稱就是在package後面再加上你想要啟用facebook登入那個畫面的activity名稱

 

Step 6:

最難的大魔王來了!!

這個步驟我覺得是最難搞的

  1. 有安裝Android Studio應該都會有安裝JAVA所以需要的Java Development Kit照理說已經有了
  2. openssl可以搜尋一下如果沒有就必須要自己下載  openssl載點(記得要選擇32 or 64 bit,要跟自己電腦的是一樣的)
  3. 接下來他說請在 Java SDK 資料夾內透過指令提示執行下列指令,意思其實是打開命令提示字元,然後把路徑設到電腦裡的Java SDK資料夾裡
    1. keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.android\debug.keystore" | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" sha1 -binary | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" base64
    2. 反光起來的地方是要自己做更改的~~~不是直接複製貼上就可以了,黃色反光的地方是要找到下面這個圖的路徑~~~我的就是C:\Users\我的名字\.android\debug.keystore
      其實跟他的教學是一樣的,但是可能還是要自己去電腦確定一下路徑是不是這樣,有可能再安裝的時候選擇了不一樣的路徑

      藍色和紅色反光的地方是你的openssl.exe的路徑,像我的就是C:\OpenSSL-Win64\bin\openssl
    3. 所以對我來說我的一整個指令就會是keytool -exportcert -alias androiddebugkey -keystore "C:\Users\名字\.android\debug.keystore" | "C:\OpenSSL-Win64\bin\openssl" sha1 -binary | "C:\OpenSSL-Win64\bin\openssl" base64
    4. 擷取.PNG

  4. 產生發行密鑰雜湊,聽起來很繞口令其實就是上面那個是在測試的時候產生的密鑰,如果要發行到Google Play的話就必須要用這一個指令產生的密鑰
    1. keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
    2. 黃色反光的地方要到命令提示字元自己找出來~~
      1. 要生成一個上架的apk需要利用一把key,讓命令提示字元路徑到你的那個key的位置,我的就放在C:\Users\我的名字\CloudStation,但是這個真的每個人都大不相同,所以要自己去找!!
      2. 命令提示字元在你的key的位置之後輸入這個指令keytool -list -v -keystore YOUR_KEYSTORE_FILE,反光的地方是要輸入你那把key的名字,然後輸入你的key的密碼
        擷取1.png
      3. 輸入密碼後就會出現這樣的畫面,我們要用的就是序號!黃色反光的地方就是要需入序號
        擷取.PNG
    3. 藍色反光的地方就是你那把key的路徑
    4. 紅色反光的地方可能因為我的openssl是另外下載的,所以我必須要改成openssl的路徑
    5. 我的整個路徑會變成這樣~~
      keytool -exportcert -alias 拿到的序號-keystore C:\Users\我的名字\CloudStation | "C:\OpenSSL-Win64\bin\openssl" sha1 -binary | "C:\OpenSSL-Win64\bin\openssl" base64
    6. 產生出來的密鑰就是給上架的apk做使用的~~
      擷取.PNG
    7. 把上面的密鑰貼到這邊然後按Save就可以了!!!

 

Step 7:

 

這一步就是看你要不要直接啟動Facebook 這個App

這就看你想不想要了

 

Step 8:

這個是利用Facebook提供的按鈕長相

如果要用他們的顏色還有Logo可以直接用~~

如果想要用自己拉的也是可以

 

Step  9:

擷取.PNG

直接利用Facebook提供的按鈕是最簡單的

但是我是自己另外做Facebook的按鈕所以寫法有點不一樣~~~

  1. 一樣還是要有這個
    callbackManager = CallbackManager.Factory.create();
    loginManager = LoginManager.getInstance();
    1. 在按鈕按下去的地方執行這個Function就可以了~~
      private void FbLogin(){
          loginManager.setLoginBehavior(LoginBehavior.NATIVE_WITH_FALLBACK);
          List<String> permissions = new ArrayList<>();
          permissions.add("public_profile");
          permissions.add("email");
          permissions.add("user_friends");
          // 設定要讀取的權限
          loginManager.logInWithReadPermissions(this, permissions);
          loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
              @Override
              public void onSuccess(LoginResult loginResult) {
                  Log.d(TAG, "onSuccess: ");
                  //這邊就是登入成功後你可以拿到資料
              }
      
              @Override
              public void onCancel() {
      
              }
      
              @Override
              public void onError(FacebookException error) {
      
              }
          });
      }
arrow
arrow
    文章標籤
    Android facebook JAVA
    全站熱搜

    小小工程師 發表在 痞客邦 留言(0) 人氣()