Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách tích hợp Facebook Login vào ứng dụng Android

Giới thiệu

Ví dụ này minh họa cách tích hợp tính năng Đăng nhập Facebook (Facebook Login) vào ứng dụng Android sử dụng Facebook SDK.

Các bước thực hiện

Bước 1: Tạo dự án mới

Android Studio → File → New Project → Điền thông tin.

Bước 2: Cài đặt Facebook SDK

Tham khảo bài viết "Cách sử dụng Facebook SDK trong Android Studio" (ID: 1003061895) để thêm dependency vào build.gradle.

Bước 3: Giao diện (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:id="@+id/rlMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    android:orientation="vertical">

    <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"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="30dp" />

</LinearLayout>

Bước 4: Code MainActivity (src/MainActivity.java)

package app.com.sample;

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void fbClick(View view) {
        CallbackManager callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager,
            new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(LoginResult loginResult) {
                    Toast.makeText(getApplicationContext(), "Đăng nhập thành công", Toast.LENGTH_SHORT).show();
                    // Xử lý sau đăng nhập: lấy token, profile, chuyển màn hình...
                }

                @Override
                public void onCancel() {
                    Toast.makeText(getApplicationContext(), "Đã hủy đăng nhập", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onError(FacebookException exception) {
                    Toast.makeText(getApplicationContext(), "Lỗi: " + exception.toString(), Toast.LENGTH_SHORT).show();
                }
            });
    }
}

Bước 5: Manifest (androidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

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

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </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>

    </application>
</manifest>

Bước 6: Thêm string resources (res/values/strings.xml)

<resources>
    <string name="facebook_app_id">YOUR_FACEBOOK_APP_ID</string>
    <string name="fb_login_protocol_scheme">fbYOUR_FACEBOOK_APP_ID</string>
</resources>

Chạy ứng dụng

Kết nối thiết bị, nhấn Run. Nhấn nút "Log in with Facebook" để kiểm tra luồng đăng nhập.

Cách tích hợp Facebook Login vào ứng dụng Android Cách tích hợp Facebook Login vào ứng dụng Android Cách tích hợp Facebook Login vào ứng dụng Android

Lưu ý quan trọng

  • Thay YOUR_FACEBOOK_APP_ID bằng App ID thực từ Facebook Developer Console.
  • Phải cấu hình Key Hash (xem bài ID 1003061897) và bật "Facebook Login" trong Products của App.
  • CallbackManager nên là field của Activity/Fragment để tránh leak, không tạo mới trong onClick.
  • Xử lý kết quả đăng nhập trong onActivityResult (hoặc Activity Result API mới).