Android 集成FaceBook實現第三方登錄

  一,必要準備:java

    

  上面是官方英文文檔,下面詳細解釋一下:linux

    Facebook app : 即須要在Facebook Developer平臺,建立本身的App,android

    Facebook SDk:  添加Facebook SDK到本身的項目中,bash

    Facebook App ID:  須要獲得在Facebook Developer平臺建立的App 的ID.app

    Android Key Hash:  獲得Android Hash Key.maven

    Facebook Activity:  將FaceBook Activity包含在你的項目AndroidManifest.xml文件中.ide

 

  集成Facebook 第三方登錄,須要以上五個必要條件,下面詳細說明,如何得到五個條件。網站

 

  一:Facebook Appui

    進入Facebook Developer官方網站:https://developers.facebook.com/  (須要***)this

    

  點擊右上角My Apps —— Add a new App,

 

  選擇Android,

  

  輸入建立App的name

  

  類別隨意選擇,點擊右下角,「建立應用編號」

  建立成功後,會跳轉到一個頁面,頁面最頂部,有顯示六個步驟,根據頁面提示,慢慢往下,一步步跟着步驟作就能夠了。

  在"Key Hashes"步驟裏,在本身電腦的命令行裏,輸入響應的命令,會獲得一串字符,這個就是Key Hashe了。

  好比在linux 系統命令行裏,輸入:keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64,接着輸入密碼:android。

  至此,Facebook App就建立成功了!

 

  二:Facebook SDK(使用Android Studio)

    1.添加如下代碼至 build.grale (Module:app)

    

repositories {
    mavenCentral()
}

    2.將Facebook SDK添加到項目:

      仍然是 build.grale(Module:app)文件,在dependencies中,添加下面這一行代碼:

"compile 'com.facebook.android:facebook-android-sdk:4.+'

  

  三:Facebook App ID

    ID在Facebook Developer官網,點擊「My Apps,而後選擇響應的App,就能夠看到App ID了。

    將ID添加到項目string.xml文件中,以下:

  

<string name="facebook_app_id">1142428895392515</string>

 

  而後在AndroidMainifest.xml文件中配置    

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

  四:Android Key Hash

    上面建立應用的時候,已經獲得過了。

  五:Facebook Activity

    在項目配置文件中,將Facebook Activity包含進去。(我忘了加,結果報:找不到Facebook Activity錯誤)

 

  六:樣例代碼

    MainActivity.java

package mera.login;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

public class MainActivity extends Activity {
    //    @ViewInject(id = R.id.facebook)
    private LoginButton bt_facebook;
    private CallbackManager mCallbackManager;
    private AccessToken mAccessToken;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //第一行,初始化FacebookSdk,
        FacebookSdk.sdkInitialize(getApplicationContext());
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mCallbackManager = CallbackManager.Factory.create();
        //找到login, button
        bt_facebook = (LoginButton) findViewById(R.id.facebook);
        bt_facebook.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Log.e("abc", "onSuccess");
            }

            @Override
            public void onCancel() {
                Log.e("abc", "onCancel");
            }

            @Override
            public void onError(FacebookException error) {
                Log.e("abc", "onError");
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mCallbackManager.onActivityResult(requestCode,
                resultCode, data);
    }

    public void getFaceBookToken(View view) {
        AccessToken mAccessToken = AccessToken.getCurrentAccessToken();
        Log.e("token", "token :" + mAccessToken.getToken() + "," + "user_id" + mAccessToken.getUserId());
    }

    @Override
    protected void onResume() {
        super.onResume();
        AppEventsLogger.activateApp(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        AppEventsLogger.deactivateApp(this);
    }
}

 

  activity_main.layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dp"
    android:background="#c99e9e"
    tools:context="mera.login.MainActivity">


    <com.facebook.login.widget.LoginButton
    android:id="@+id/facebook"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    />
</LinearLayout>

 

  有問題下方評論留言給我。  

相關文章
相關標籤/搜索