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

Thảo luận trong 'Lập trình phần mềm' bắt đầu bởi myonline84, 20/1/16.

  1. myonline84

    myonline84 Thành Viên Mới

    Tham gia ngày:
    20/1/16
    Bài viết:
    6
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    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 để ứ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.

    Yêu cầu
    • Phiên bản mới nhất của Android Studio
    • Một tài khoản facebook
    • Có kiến thức về lập trình android cơ bản
    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.

    [​IMG]

    Chọn nền tảng Android

    [​IMG]

    Chọn Skip and Create App ID

    [​IMG]

    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

    [​IMG]

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

    [​IMG]

    Chọn Choose a Platform

    [​IMG]

    Chọn Android

    [​IMG]

    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
    [​IMG]

    • Bước 2: Tạo mới Activity trong Android Studio
    • Bước 3: Nhập Package NameDefault Activity Class Name, sau đó chọn Next
    [​IMG] Bước 2: 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
    Mã:
    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){
    }
    • Nhập Key Hash tại Development Key Hashes tại trang web, sau đó chọn Next
    [​IMG]Bước 3: 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
    Mã:
    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
    Mã:
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    callbackManager.onActivityResult(requestCode, resultCode, data);
    }
    Thêm Facebook Application I
    • 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
    [​IMG]


    Mã:
    <string name="app_id">435435223321960</string>
    Thay đổi AndroidManifest.xml
    • Bổ sung các đoạn mã sau
    Build và thực thi ứng dụng
    Mã:
    <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" />
    • Chạm vào icon AndroidPratice (AndroidPractice là tên ứng dụng)
    [​IMG]

    • Màn hình ứng dụng
    [​IMG]

    • Chạm “Log in with Facebook”
    [​IMG]

    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
     
    Cảm ơn đã xem bài:

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

    Last edited by a moderator: 21/1/16
    Đang tải...
  2. dieuhoa

    dieuhoa Thành Viên Thường

    Tham gia ngày:
    2/9/15
    Bài viết:
    193
    Đã được thích:
    4
    Điểm thành tích:
    18
    Giới tính:
    Nam
    cái này nhìn toàn tiếng anh thì hiểu sao được bạn
     
  3. so sanh 24h

    so sanh 24h Thành Viên Mới

    Tham gia ngày:
    23/5/16
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nữ
    dạo này facebook đang bị chặn ở việt nam rồi
     
  4. dieuhoa3

    dieuhoa3 Thành Viên Thường

    Tham gia ngày:
    7/9/15
    Bài viết:
    165
    Đã được thích:
    3
    Điểm thành tích:
    18
    Giới tính:
    Nam
    cái này nhìn khó hiểu quá bạn à
     
  5. vantuan88291

    vantuan88291 Thành Viên Mới

    Tham gia ngày:
    11/7/16
    Bài viết:
    25
    Đã được thích:
    0
    Điểm thành tích:
    3
    Giới tính:
    Nam
    có phải kết hợp api viết bằng php nữa ko bạn
     


Like và Share ủng hộ ITSEOVN