Liên kết tài khoản

Tính năng Liên kết tài khoản tách biệt với các tính năng khác của chế độ xem web có trong Nền tảng Messenger. Chỉ có thể khởi động tính năng này thông qua nút Đăng nhập chứ không phải từ menu cố định của bot, từ nút URL hay từ bên trong luồng chế độ xem web đã mở sẵn hoặc Plugin chat.

Nhà phát triển sử dụng các tính năng này hiện có thể lấy ID của người dùng một cách an toàn bằng hàm getContext() trong Tiện ích Messenger. Sau đó, bot có thể sử dụng ID đó để liên kết tài khoản của người dùng hoặc cá nhân hóa trải nghiệm.

Hiện tại, tính năng Liên kết tài khoản chỉ được hỗ trợ trên ứng dụng Messenger dành cho iOS và Android.

Khi người dùng bắt đầu cuộc trò chuyện với doanh nghiệp của bạn, bạn cần xác định người dùng đó là khách hàng đã có tài khoản với doanh nghiệp của bạn. Để hỗ trợ về vấn đề này, chúng tôi đã tạo một giao thức bảo mật để liên kết và hủy liên kết danh tính người dùng Messenger với danh tính người dùng của doanh nghiệp bạn.

Với tính năng Liên kết tài khoản, bạn có thể mời người dùng đăng nhập bằng quy trình xác thực của riêng bạn và nhận ID trong trang (PSID) của Messenger khi hoàn tất. Sau đó, bạn có thể mang đến cho người dùng trải nghiệm an toàn, cá nhân hóa và phù hợp hơn.

Nội dung

Quy trình liên kết

Quy trình Liên kết tài khoản tuân theo vài bước đơn giản.

  1. Đăng ký URL gọi lại bằng Nút Đăng nhập.
  2. Nền tảng Messenger gọi URL đã đăng ký khi người dùng bắt đầu quy trình liên kết tài khoản. Hệ thống bổ sung các thông số redirect_uriaccount_linking_token vào lệnh gọi lại mà bạn đã đăng ký.
  3. Sau khi quy trình liên kết hoàn tất, hãy chuyển hướng người dùng đến vị trí mà redirect_uri cung cấp và bổ sung thông số authorization_code (do bạn xác định) để xác nhận việc liên kết.
  4. Bạn có thể truy xuất ID trong trang (PSID) của người dùng bằng điểm cuối liên kết tài khoản nếu muốn. Bạn chỉ nên dùng bước này trong trường hợp đặc biệt khi cần PSID của người dùng trong quá trình liên kết.

Quy trình Hủy liên kết tài khoản có thể được khởi tạo:

Lệnh gọi lại

Nền tảng Messenger gọi URL liên kết tài khoản khi người dùng kích hoạt quy trình liên kết tài khoản. Hệ thống bổ sung các thông số redirect_uriaccount_linking_token vào lệnh gọi lại URL.

<yourAccountLinkingUrl>
  ?account_linking_token=ACCOUNT_LINKING_TOKEN
  &redirect_uri=CALLBACK_URL

Nếu liên kết tài khoản thành công, bạn cần hoàn tất quy trình này bằng cách chuyển hướng trình duyệt đến URL được chỉ định trong thông số redirect_uri, đồng thời bổ sung thông số authorization_code do bạn xác định. Lưu ý rằng URL này có thể đã chứa các thông số. Vì vậy, bạn nên bổ sung mã ủy quyền tương ứng:

<redirect_uri>
  &authorization_code=AUTHORIZATION_CODE

Nếu liên kết tài khoản không thành công, hãy chuyển hướng trình duyệt đến redirect_uri được chuyển cho bạn dưới dạng thông số nhưng không bổ sung authorization_code.

Thông số

Tên thông số Mô tả

redirect_uri

URI chuyển hướng sẽ được Messenger thêm vào. Bạn phải chuyển hướng trình duyệt đến vị trí này khi kết thúc quy trình xác thực. URI này có thể chứa các thông số được mã hóa URL.

account_linking_token

Mã ngắn hạn do Messenger chuyển mà bạn cần chuyển lại như một phần của lược đồ chuyển hướng. Mã này chỉ có hiệu lực trong 5 phút, được mã hóa và là mã duy nhất với mỗi người dùng.
Bạn có thể gọi điểm cuối truy xuất PSID bằng mã này để tìm nạp PSID tương ứng.

authorization_code

Mã do bạn cung cấp để xác nhận liên kết thành công. Nền tảng Messenger sẽ chuyển mã này lại cùng với PSID của người dùng dưới dạng sự kiện webhook Liên kết tài khoản. Nếu không chuyển thông số này, quá trình liên kết sẽ bị hủy bỏ.

Sự kiện webhook

Quy trình liên kết thành công sẽ kích hoạt sự kiện Liên kết tài khoản để phân phối ID trong trang (PSID) của người dùng.

Bạn phải đăng ký sự kiện gọi lại liên kết tài khoản. Nếu không xác nhận sự kiện webhook này, quá trình liên kết sẽ bị hủy bỏ.

Điểm cuối truy xuất PSID

Trong một số trường hợp, bạn cần truy xuất ID trong trang (PSID) của người dùng trong quy trình liên kết. Để hỗ trợ về tình huống này, chúng tôi sẽ cung cấp điểm cuối truy xuất PSID để bạn có thể tìm nạp PSID của người dùng bằng một account_linking_token hợp lệ và chưa hết hạn.

Yêu cầu

curl -X GET "https://graph.facebook.com/v2.6/me?access_token=PAGE_ACCESS_TOKEN \
      &fields=recipient \
      &account_linking_token=ACCOUNT_LINKING_TOKEN"

Phản hồi

{
  "id": "PAGE_ID",
  "recipient": "PSID"
}    

Trong một số trường hợp, bạn cần hủy liên kết ID trong trang (PSID) của người dùng với chương trình phụ trợ của mình theo quy trình. Để hỗ trợ về tình huống này, chúng tôi sẽ cung cấp điểm cuối hủy liên kết PSID để bạn có thể hủy liên kết tài khoản của người dùng bằng một PSID hợp lệ.

Yêu cầu

curl -X POST -H "Content-Type: application/json" -d '{
   "psid":"PSID"
}' "https://graph.facebook.com/v2.6/me/unlink_accounts?access_token=PAGE_ACCESS_TOKEN"

Phản hồi

{
  "result": "unlink account success"
}

Cách làm tốt nhất

Dùng tính năng Liên kết tài khoản khi bạn có hệ thống tài khoản người dùng mở rộng ra ngoài Messenger.

Cho phép mọi người tạo tài khoản từ trong Messenger để có thể dùng tài khoản ở những nơi khác.

Nhắc đăng nhập khi phù hợp ngữ cảnh - tức là khi người dùng bot của bạn có thể nhận thấy lợi ích khi làm việc đó.

Xem xét cách bot nên hành động nếu người dùng từ chối đăng nhập.

Đưa ra xác nhận rõ ràng và lời chào mừng thân thiện sau khi đăng nhập.

Không dùng tính năng Liên kết tài khoản nếu mọi người chỉ tương tác với bạn qua Messenger. Bạn có thể lưu trữ thông tin tài khoản qua ID chuỗi trò chuyện.

Không yêu cầu Liên kết tài khoản ngay lập tức nếu có thể. Trước hết, hãy để mọi người hiểu về bot của bạn.

Quy trình thiết kế được đề xuất

  1. Nhắc đăng nhập bằng thông báo có nút Liên kết tài khoản của chúng tôi.
  2. Hiển thị trang đăng nhập của bạn (có tùy chọn Tạo tài khoản) trong chế độ xem web Liên kết tài khoản. Đảm bảo giao diện đẹp và hoạt động tốt trên màn hình di động.
  3. Sau khi đăng nhập thành công, hãy hiển thị thông báo xác nhận trong chế độ xem web. Sau đó, người dùng cần tự loại bỏ thông báo này.
  4. Tiếp tục với lời cảm ơn thân thiện và/hoặc các bước tiếp theo trong chuỗi trò chuyện, bao gồm cả tùy chọn Đăng xuất.