Đăng nhập bằng Facebook dành cho iOS - Bắt đầu nhanh

Chúng tôi đã thực hiện thay đổi đối với các điểm cuối cho chế độ Giới hạn đăng nhập; bạn hiện có thể truy cập vào chế độ này theo địa chỉ limited.facebook.com

Khi đăng nhập vào ứng dụng của bạn bằng Facebook, mọi người có thể cấp quyền cho ứng dụng đó để bạn thay mặt họ truy xuất thông tin hoặc thực hiện hành động trên Facebook.

Dưới đây là các bước thêm phương thức Đăng nhập bằng Facebook vào dự án iOS.

1. Đăng nhập

Vui lòng đăng nhập Facebook để tạo ứng dụng hoặc đăng ký với tư cách nhà phát triển.

2. Thiết lập môi trường phát triển của bạn

Hãy thiết lập môi trường phát triển của bạn trước khi sử dụng phương thức Đăng nhập bằng Facebook dành cho iOS.

Sử dụng Trình quản lý gói Swift (SPM)
  1. Trong Xcode, nhấp vào File > Swift Packages > Add Package Dependency (File > Các gói Swift > Thêm phần phụ thuộc gói).
  2. Trong hộp thoại hiện ra, nhập URL kho lưu trữ: https://github.com/facebook/facebook-ios-sdk.
  3. Trong mục Version (Phiên bản), nhập số phiên bản của Facebook SDK mới nhất dành cho iOS.
  4. Hoàn tất lời nhắc để chọn thư viện bạn muốn sử dụng trong dự án của mình.

3. Đăng ký và đặt cấu hình ứng dụng của bạn với Facebook

Hãy đăng ký và đặt cấu hình ứng dụng của bạn để có thể sử dụng phương thức Đăng nhập bằng Facebook khi thêm Số nhận dạng gói bạn có.

Bạn cần đăng nhập để hoàn thành bước này.

4. Đặt cấu hình dự án của bạn

Đặt cấu hình file Info.plist bằng đoạn mã XML chứa dữ liệu về ứng dụng của bạn.

Sau khi bạn tích hợp phương thức Đăng nhập bằng Facebook, hệ thống sẽ tự động ghi và thu thập một số Sự kiện trong ứng dụng cho Trình quản lý sự kiện, trừ khi bạn tắt tính năng Tự động ghi sự kiện trong ứng dụng. Để biết chi tiết về loại thông tin được thu thập và cách tắt tính năng tự động ghi sự kiện trong ứng dụng, hãy xem bài viết Tự động ghi sự kiện trong ứng dụng.

  1. Nhấp chuột phải vào Info.plist rồi chọn Mở dưới dạng ▸ Mã nguồn.
  2. Sao chép và dán đoạn mã XML sau vào phần nội dung của file (<dict>...</dict>).
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
      <key>CFBundleURLSchemes</key>
      <array>
        <string>fbAPP-ID</string>
      </array>
      </dict>
    </array>
    <key>FacebookAppID</key>
    <string>APP-ID</string>
    <key>FacebookClientToken</key>
    <string>CLIENT-TOKEN</string>
    <key>FacebookDisplayName</key>
    <string>APP-NAME</string>
  3. Trong <array><string> thuộc khóa [CFBundleURLSchemes], hãy thay thế APP-ID bằng ID ứng dụng của bạn.
  4. Trong <string> thuộc khóa FacebookAppID, hãy thay thế APP-ID bằng ID ứng dụng của bạn.
  5. Trong <string> thuộc khóa FacebookClientToken, hãy thay thế CLIENT-TOKEN bằng giá trị trong phần Cài đặt > Nâng cao > Mã ứng dụng trên Bảng điều khiển ứng dụng.
  6. Trong <string> thuộc khóa FacebookDisplayName, hãy thay thế APP-NAME bằng tên ứng dụng của bạn.
  7. Để sử dụng bất kỳ hộp thoại nào của Facebook (ví dụ: Đăng nhập, Chia sẻ, Lời mời cài đặt ứng dụng, v.v.) có thể thực hiện chuyển đổi ứng dụng sang các ứng dụng của Facebook, Info.plist của ứng dụng cũng cần bao gồm:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <string>fbapi</string>
      <string>fb-messenger-share-api</string>
    </array>

Bạn có thể trực tiếp đặt tính năng tự động thu thập Sự kiện trong ứng dụng thành "true" hoặc "false" bằng cách thêm FacebookAutoLogAppEventsEnabled làm khóa trong Info.plist.

Dự án của bạn sẽ cần có tính năng Chia sẻ chuỗi khóa để quy trình đăng nhập có thể hoạt động trong các ứng dụng Mac Catalyst.
  1. Chọn nút + Capability (+ Tính năng) trên tab Signing & Capabilities (Đăng nhập và tính năng) khi đặt cấu hình đối tượng mục tiêu cho ứng dụng của bạn.
  2. Tìm và chọn tính năng Keychain Sharing (Chia sẻ chuỗi khóa).
  3. Nhớ liệt kê tính năng Keychain Sharing (Chia sẻ chuỗi khóa) cho đối tượng mục tiêu đó.

5. Kết nối đối tượng ủy quyền ứng dụng của bạn

Thay thế mã trong phương thức AppDelegate.swift bằng mã dưới đây. Mã này sẽ khởi tạo SDK khi ứng dụng của bạn chạy, đồng thời cho phép SDK xử lý hoạt động đăng nhập và chia sẻ từ ứng dụng gốc trên Facebook khi bạn thực hiện hành động Đăng nhập hoặc Chia sẻ. Nếu không, người dùng phải đăng nhập vào Facebook để đăng nhập bằng trình duyệt trong ứng dụng.
    
// AppDelegate.swift
import UIKit
import FacebookCore

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {    
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {          
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        return true
    }
          
    func application(
        _ app: UIApplication,
        open url: URL,
        options: [UIApplication.OpenURLOptionsKey : Any] = [:]
    ) -> Bool {
        ApplicationDelegate.shared.application(
            app,
            open: url,
            sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
            annotation: options[UIApplication.OpenURLOptionsKey.annotation]
        )
    }  
}

iOS 13 đã chuyển chức năng URL mở sang SceneDelegate. Nếu bạn đang dùng phiên bản iOS 13, vui lòng thêm phương thức dưới đây vào SceneDelegate để các thao tác như đăng nhập hoặc chia sẻ hoạt động như dự định:
// SceneDelegate.swift
import FacebookCore
  ...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
    guard let url = URLContexts.first?.url else {
        return
    }

    ApplicationDelegate.shared.application(
        UIApplication.shared,
        open: url,
        sourceApplication: nil,
        annotation: [UIApplication.OpenURLOptionsKey.annotation]
    )
}

6. Thêm phương thức Đăng nhập bằng Facebook vào mã của bạn

Hãy sử dụng nút Đăng nhập bằng Facebook trong ứng dụng iOS của bạn.

6a. Thêm Đăng nhập Facebook vào mã của bạn

Để thêm nút Đăng nhập mang thương hiệu Facebook vào ứng dụng của bạn, hãy thêm đoạn mã sau vào trình điều khiển chế độ xem.
// Add this to the header of your file, e.g. in ViewController.swift 
import FacebookLogin

// Add this to the body
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
	
        let loginButton = FBLoginButton()
        loginButton.center = view.center
        view.addSubview(loginButton)
    }
}
Hiện tại, bạn có thể chạy ứng dụng và dùng nút Đăng nhập bằng Facebook để đăng nhập.

6b. Kiểm tra trạng thái đăng nhập hiện tại

Mỗi lần, chỉ một người dùng có thể đăng nhập vào ứng dụng của bạn. Chúng tôi biểu thị mỗi người đã đăng nhập vào ứng dụng của bạn bằng AccessToken.current.
LoginManager sẽ đặt mã này cho bạn, đồng thời tự động viết AccessToken.current vào phần lưu trữ chuỗi khóa khi đặt thông số đó.
AccessToken chứa userID mà bạn có thể dùng để xác định người dùng.
Bạn nên cập nhật trình điều khiển chế độ xem để kiểm tra mã hiện có khi tải. Như vậy, bạn có thể tránh hiển thị lại quy trình đăng nhập khi không cần thiết nếu ai đó đã cấp quyền cho ứng dụng của bạn:
override func viewDidLoad() {
    super.viewDidLoad()

    if let token = AccessToken.current,
        !token.isExpired {
        // User is logged in, do work such as go to next view controller.
    }
}
    

6c. Yêu cầu quyền

Khi sử dụng phương thức Đăng nhập bằng Facebook, ứng dụng của bạn có thể yêu cầu quyền đối với một nhóm nhỏ dữ liệu của người nào đó. Người dùng bên ngoài phải có quyền public_profile nâng cao thì mới sử dụng được phương thức Đăng nhập bằng Facebook.
Quyền đọc cho nút Đăng nhập bằng Facebook
Để yêu cầu quyền đọc bổ sung, hãy đặt thuộc tính permissions trên đối tượng FBLoginButton .
// Extend the code sample from 6a. Add Facebook Login to Your Code
// Add to your viewDidLoad method:
loginButton.permissions = ["public_profile", "email"]
  
Người dùng sẽ được nhắc cấp cho ứng dụng của bạn các quyền được yêu cầu. Lưu ý rằng một số quyền sẽ yêu cầu Xét duyệt đăng nhập. Hãy xem phần Quản lý quyền để biết thêm thông tin về quyền.

7. Bước tiếp theo

Chúc mừng! Bạn đã thêm phương thức Đăng nhập bằng Facebook vào ứng dụng iOS của mình! Hãy nhớ tham khảo các trang tài liệu khác của chúng tôi để biết thêm hướng dẫn nâng cao.
Triển khai lệnh gọi lại xóa dữ liệu để phản hồi yêu cầu của mọi người về việc xóa dữ liệu của họ khỏi Facebook.
Thêm sự kiện vào ứng dụng của bạn để xem dữ liệu phân tích, đo lượng hiệu quả quảng cáo và tạo đối tượng để nhắm mục tiêu quảng cáo.
Xem thiết lập nâng cao của chúng tôi cho phương thức Đăng nhập bằng Facebook trên ứng dụng iOS.
Quản lý dữ liệu mà ứng dụng của bạn có quyền truy cập thông qua phương thức Đăng nhập bằng Facebook.
Xem cách phản hồi các lỗi do Facebook SDK trả về.
Thử nghiệm và xác minh rằng quy trình Đăng nhập bằng Facebook của bạn hoạt động.
Tùy theo dữ liệu Facebook mà bạn yêu cầu từ những người sử dụng phương thức Đăng nhập bằng Facebook, có thể bạn cần gửi ứng dụng của mình để xét duyệt trước khi ra mắt ứng dụng.
Hãy xem phần Tạo quy trình đăng nhập theo cách thủ công để tạo quy trình đăng nhập của riêng bạn.