Đối ghép người dùng trên các ứng dụng và Trang

Nếu bạn muốn dùng chung ID người dùng trong ứng dụng giữa các phiên bản thử nghiệm, phát triển, tách chuyển hoặc đảm bảo chất lượng của ứng dụng, vui lòng dùng Ứng dụng thử nghiệm.

Facebook sẽ cấp ID người dùng trong ứng dụng cho những người lần đầu đăng nhập vào một phiên bản ứng dụng và những người đăng nhập bằng chế độ Giới hạn đăng nhập. Còn đối với những người lần đầu dùng bot Messenger, Facebook sẽ cấp ID người dùng trong trang. Theo định nghĩa thì điều này có nghĩa là ID của cùng một người có thể khác nhau giữa các ứng dụng và bot này.

Một doanh nghiệp có thể vận hành vài Ứng dụng hoặc bot trên Facebook – thường thấy trong các studio game để hỗ trợ những trường hợp sử dụng như quảng cáo chéo hoặc phát hiện gian lận hoặc trong các bot dùng để giao tiếp với người dùng. Trong những trường hợp này, bạn có thể cần đối ghép ID của cùng một người giữa các ứng dụng và bot đó.

Bạn có thể đối ghép cùng một người dùng trên nhiều ứng dụng theo 3 phương thức sau:

Trước khi có thể sử dụng bất kỳ cơ chế nào nêu trên, đầu tiên, bạn phải cho Facebook biết rằng ứng dụng của bạn là do cùng một thực thể kinh doanh sở hữu và vận hành. Để thực hiện việc này, bạn cần sử dụng Trình quản lý kinh doanh trên Facebook để:

Trường token_for_business trên nút Người dùng

Sau khi một ứng dụng được liên kết với Trình quản lý kinh doanh, bạn có thể yêu cầu trường token_for_business trên nút User bằng cách sử dụng ID người dùng trong ứng dụng có được từ chế độ Giới hạn đăng nhập hoặc từ lần đầu đăng nhập vào một phiên bản ứng dụng. Lệnh gọi này sẽ trả về một chuỗi giống nhau cho người này trên tất cả các ứng dụng do cùng một Trình quản lý kinh doanh quản lý.

GET /me?fields=token_for_business

sẽ trả về:

{
  "id": "1234567890"
  "token_for_business": "weg23ro87gfewblwjef"
}

Ghi chú về cách sử dụng:

  • Người được truy vấn phải đăng nhập vào ứng dụng này từ trước.
  • Bạn có thể gọi trường này bằng mã truy cập ứng dụng hoặc mã truy cập người dùng. Nếu sử dụng mã người dùng, người được truy vấn phải chính là người được tạo mã.
  • Nếu dùng ID trong ứng dụng có được từ chế độ Giới hạn đăng nhập, bạn phải dùng ID ứng dụng của mình để thực hiện lệnh gọi vì bạn không có mã Người dùng hợp lệ cho các lệnh gọi API Đồ thị. Lưu ý rằng các biện pháp bảo vệ của chế độ Giới hạn đăng nhập không được hỗ trợ trong ngữ cảnh này.
  • Nếu doanh nghiệp sở hữu thay đổi, giá trị của token_for_business cũng sẽ thay đổi.
  • Nếu bạn yêu cầu trường token_for_business và ứng dụng không được liên kết với Trình quản lý kinh doanh, lệnh gọi sẽ trả về lỗi.
  • Giá trị do token_for_business trả về là mã chứ không phải ID. Bạn không thể dùng trực tiếp mã này dựa trên API Đồ thị để truy cập thông tin của một người. Bạn vẫn phải lưu trữ ID này trong cơ sở dữ liệu rồi sử dụng ID đó để gọi API Đồ thị và lấy thông tin của người đó.

Trường token_for_business có sẵn trong tất cả các phiên bản API để tiện sử dụng

Thuộc tính token_for_business trong đối tượng signed_request trên Canvas

Để các ứng dụng có trên Canvas dễ dàng đối ghép người dùng trên nhiều ứng dụng, nếu ứng dụng được liên kết với Trình quản lý kinh doanh và người dùng đã đăng nhập vào ứng dụng, trường token_for_business sẽ được thêm và chuyển vào ứng dụng đó qua đối tượng signed_request. Đối tượng này được chuyển vào các ứng dụng trên Canvas khi tải. Ví dụ:

{
  "algorithm": "HMAC-SHA256",
  "expires": 1414263600,
  "issued_at": 1414257389,
  "oauth_token": "CAAGEkq9GMZAkBAFnvvQ3M6msZBKITLa1gVZBVdnLTdJue2QeV6fMKRXn4G6fcEZB5ZAJyg3z6HdaKOJCCMJ1l9YFWmN4hq6nNnx77f9O7SYhsnPcJ6iH79xjFwqhrALgieDp7GiziMy5Y3Mol6RzHvCM5ceqQe9ZAijvrWZB5hEIwphbMQKEwZA4ZBozXP3NJgEZA3nZCMTTtvleWpxfmqIqO5XwxneCZBsZC4",
  "token_for_business": "AbwoGqummPbF3zp_",
  "user_id": "10154418713995634"
}

Giá trị của trường token_for_business sẽ giống như khi được truy vấn trực tiếp trên nút User, chẳng hạn như qua /me?fields=token_for_business. Giá trị này cũng tuân theo các quy tắc tương tự, tức là nếu doanh nghiệp sở hữu thay đổi thì giá trị của token_for_business cũng sẽ thay đổi.

Nếu ứng dụng không được liên kết với Trình quản lý kinh doanh hoặc người dùng chưa đăng nhập vào ứng dụng, thuộc tính token_for_business sẽ không có trong đối tượng signed_request.

Cạnh ids_for_business trên nút Người dùng

Lấy ID doanh nghiệp được đối ghép bằng cách gọi cạnh ids_for_business trên nút User. Phản hồi sẽ là một mảng đối tượng, mỗi đối tượng biểu thị một ứng dụng được liên kết với cùng một doanh nghiệp như ứng dụng gọi mà người dùng cũng đã đăng nhập.

GET /me/ids_for_business

Phản hồi mẫu:

{
  "data": [
    {
      "id": "10153949089790582", 
      "app": {
        "name": "Business's App 1", 
        "namespace": "business_app_1", 
        "id": "647733625268125"
      }
    }, 
    {
      "id": "605665581", 
      "app": {
        "name": "Business's App 2", 
        "namespace": "business_app_2", 
        "id": "370612223054807"
      }
    }, 
    {
      "id": "10154053730190582", 
      "app": {
        "name": "Business's App 3", 
        "namespace": "business_app_3", 
        "id": "194890427204075"
      }
    }
  ]
}

Để API trả về dữ liệu, người dùng phải đăng nhập vào một hoặc nhiều ứng dụng được liên kết với cùng một doanh nghiệp như ứng dụng mà bạn dùng để thực hiện lệnh gọi API. Ví dụ: nếu một người đã đăng nhập vào 3 trong 5 ứng dụng được liên kết với cùng một doanh nghiệp, API sẽ trả về 3 đối tượng.

Câu hỏi thường gặp

Tôi có cần sử dụng API Khớp doanh nghiệp không?

Không. API Khớp doanh nghiệp chỉ hữu ích cho những doanh nghiệp vận hành nhiều Ứng dụng trên Facebook, cũng như cần đối ghép cùng một ID người dùng giữa các ứng dụng đó. Nếu chỉ có một ứng dụng chính, thì bạn chắc chắn không cần sử dụng API Khớp doanh nghiệp và do đó, không cần thiết lập doanh nghiệp hoặc liên kết ứng dụng với doanh nghiệp.

Trình quản lý kinh doanh là gì?

Trình quản lý kinh doanh là cách để giúp các doanh nghiệp và agency quản lý Trang Facebook, tài khoản quảng cáo, ứng dụng và phương thức thanh toán của họ ở cùng một nơi. Đọc thêm về Trình quản lý kinh doanh.

Tôi nghĩ là mình không cần sử dụng API Khớp doanh nghiệp nhưng tôi có nên liên kết ứng dụng với một doanh nghiệp không?

Nếu không cần sử dụng API Khớp doanh nghiệp, thì bạn không nên thiết lập doanh nghiệp tại thời điểm này. Khi cần liên kết một doanh nghiệp với Trang Facebook chính cho doanh nghiệp của bạn, thì người phù hợp nhất để thiết lập doanh nghiệp trên Facebook chính là người thường xuyên quản lý các tài khoản quảng cáo trên Facebook, cũng như các quyền truy cập Trang cho công ty của bạn. Nếu họ đã thiết lập doanh nghiệp của bạn trong Trình quản lý kinh doanh, thì bạn không phải liên kết ứng dụng với doanh nghiệp đó.

Tôi có thể liên kết ứng dụng với nhiều doanh nghiệp không?

Không. Bạn chỉ có thể liên kết một ứng dụng với một doanh nghiệp mỗi lần.

Tôi có thể chuyển ứng dụng cho doanh nghiệp khác không?

Có. Trước tiên, bạn phải gỡ ứng dụng khỏi doanh nghiệp mà ứng dụng đó đang liên kết. Bạn có thể thực hiện việc này trong Trình quản lý kinh doanh. Chỉ cần đi tới tab Ứng dụng trong cài đặt doanh nghiệp, chọn ứng dụng và nhấp vào "Gỡ". Sau đó, bạn có thể liên kết ứng dụng này với một doanh nghiệp mới.