Hướng dẫn tích hợp login của facebook trong ứng dụng android sẽ trình bày đến các bạn các bước cần thực hiện để cho phép người dùng login bằng tài khoản facebook ngay trong ứng dụng Android.

Facebook Login cung cấp một cách thuận tiện và an toàn cho phép người sử dụng đăng nhập vào một ứng dụng mà không cần phải đăng ký lại. Sử dụng phiên bản mới nhất của Facebook SDK cho Android để thêm tính năng này cho ứng dụng của bạn một cách nhanh chóng.

Trong bài hướng dẫn tích hợp login của facebook trong ứng dụng android, bạn sẽ tìm hiểu làm thế nào để thêm nút đăng nhập của Facebook vào một ứng dụng Android và xử lý các sự kiện đăng nhập của người dùng.

Hướng dẫn tích hợp login của facebook trong ứng dụng android – Yêu cầu

Các bước thực hiện tích hợp login của facebook trong ứng dụng android

Bước 1: Đăng ký ứng dụng

Tất cả các ứng dụng mà sử dụng Facebook SDK phải được đăng ký với Facebook. Đăng nhập vào trang Facebook Developers website  và nhấn Add a New App ở góc trên bên phải.

tích hợp login của facebook trong ứng dụng android

Chọn nền tảng Android

tích hợp login của facebook trong ứng dụng android

Chọn Skip and Create App ID

tích hợp login của facebook trong ứng dụng android

Nhập thông tin cho Tên hiển thị và lựa chọn danh mục, sau đó chọn Tạo ID ứng dụng

tích hợp login của facebook trong ứng dụng android

Hoàn tất kiểm tra bảo mật vào chọn nút Gửi

tích hợp login của facebook trong ứng dụng android

Chọn Choose a Platform

tích hợp login của facebook trong ứng dụng android

Chọn Android

tích hợp login của facebook trong ứng dụng android

Thêm Facebook SDK vào Project

Để sử dụng Facebook SDK trong một project, chúng ta phải thêm trong phần dependency và import com.facebook.FacebookSdk. Các bước thực hiện như sau: (Lưu ý nếu thêm Facebook SDK vào Project đã tồn tại thì chỉ thực hiện từ 2 – 3)

1. Tại Android Studio -> New Project, Minimum SDK chọn “API 15: Android 4.0.3” hoặc cao hơn và tạo một project mới. Sau khi bạn tạo xong project, mở tập tin build.gradle (Module:app)

2. Bổ sung dòng này vào build.gradle (Module:app) trước dependencies: repositories { mavenCentral() }

3. Import com.facebook.FacebookSdk vào ứng dụng bằng cách bổ sung đoạn lệnh này vào phần dependencies của build.gradle (Module:app):

compile 'com.facebook.android:facebook-android-sdk:4.6.0'

Rebuild project (Trong Android Studio -> Chọn Build -> Chọn Rebuild Project)

Đăng ký package và Activity

Bước 1: Xem Package Name khai báo trong AndroidManifest.xml

tích hợp login của facebook trong ứng dụng android

Bước 2: Tạo mới Activity trong Android Studio Thiết kế layout

<com.facebook.login.widget.LoginButton
    android:id="@+id/login_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"/>
thuc-hanh-android-fb-19

Bước 3: Nhập Package NameDefault Activity Class Name, sau đó chọn Next

tích hợp login của facebook trong ứng dụng android

Bước 4: Sinh mã Key Hash tại Activity

Sử dụng đoạn mã sau để sinh mã Key Hash, lưu ý thay đổi đoạn in đậm theo package của ứng dụng đã khai báo trong AndroidManifest.xml

try {
  PackageInfo packageInfo = getPackageManager().getPackageInfo("android.androidpractice", PackageManager.GET_SIGNATURES);
  for(Signature signature: packageInfo.signatures){
   MessageDigest messageDigest = MessageDigest.getInstance("SHA");
   messageDigest.update(signature.toByteArray());
   Log.d("KeyHash", Base64.encodeToString(messageDigest.digest(),Base64.DEFAULT));
  }
}catch (Exception e){
}
thuc-hanh-android-fb-18

Nhập Key Hash tại Development Key Hashes tại trang web, sau đó chọn Next

tích hợp login của facebook trong ứng dụng android

Bước 5: Viết xử lý cho Activity

Khai báo các đối tượng ở phạm vi toàn cục

private LoginButton loginButton;
private CallbackManager callbackManager;

Viết xử lý cho phương thức onCreate

FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
loginButton = (LoginButton)findViewById(R.id.login_button);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
 @Override
 public void onSuccess(LoginResult loginResult) {
  Toast.makeText(MainActivity.this,"Successful", Toast.LENGTH_LONG).show();
 }
 @Override
 public void onCancel() {
  Toast.makeText(MainActivity.this,"Login attempt canceled.", Toast.LENGTH_LONG).show();
 }
 @Override
 public void onError(FacebookException e) {
  Toast.makeText(MainActivity.this,"Login attempt failed.", Toast.LENGTH_LONG).show();
 }
});

Giải thích

  • Nếu đăng nhập thành công thì phương thức onSuccess được gọi
  • Nếu người sử dụng huỷ đăng nhập thì phương thức onCancel được gọi
  • Nếu quá trình đăng nhập phát sinh lỗi thì phương thức onError được gọi
  • Khi người dùng chạm vào nút đăng nhập thì sẽ bắt đầu một Activity mới, trong đó trả về một kết quả. Để tiếp nhận và xử lý kết quả, chúng ta phải thực hiện override phương thức onActivityResult của CallbackManager
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

Thêm Facebook Application ID

Facebook Application ID chúng ta đã nhận trong quá trình đăng ký app. Thực hiện bổ sung đoạn mã sau tại res/values/strings.xml Lưu ý thay đổi đoạn in đậm bằng App ID của ứng dụng bạn

tích hợp login của facebook trong ứng dụng android
<string name="app_id">435435223321960</string>

Thay đổi AndroidManifest.xml

Bổ sung các đoạn mã sau

<uses-permission android:name="android.permission.INTERNET" />
<meta-data android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/app_id"/>
<activity android:name="com.facebook.FacebookActivity"
    android:configChanges=
        "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:label="@string/app_name" />

Build và run ứng dụng

Chọn AndroidPratice (với AndroidPractice là tên ứng dụng)

tích hợp login của facebook trong ứng dụng android

Màn hình ứng dụng khi chạy

tích hợp login của facebook trong ứng dụng android

Chọn “Log in with Facebook

tích hợp login của facebook trong ứng dụng android

Các bạn đã hoàn thành xong bài hướng dẫn tích hợp login của facebook trong ứng dụng android. Chúc các bạn thành công.