Thêm SDK Tiện ích Messenger

SDK Tiện ích Messenger đem các tính năng có giá trị, dành riêng cho Messenger đến bất kỳ trang web hoặc ứng dụng web nào được mở trong chế độ xem web của Messenger. Với SDK này, bạn có thể truy xuất thông tin về người đã mở chế độ xem web, chia sẻ nội dung với các cuộc trò chuyện trong Messenger và tích hợp sâu với giao diện người dùng Messenger.

Tính năng có sẵn

Khi bạn thêm SDK Tiện ích Messenger, trong chế độ xem web của Messenger có các tính năng sau. Lưu ý rằng khả năng sử dụng thực tế của các tính năng có thể khác nhau tùy theo phiên bản Messenger và thiết bị.

HàmMô tả

getContext()

Truy xuất ngữ cảnh của cuộc trò chuyện, chẳng hạn như PSID của người đã mở chế độ xem web.

requestCloseBrowser()

Đóng chế độ xem web và trở về cuộc trò chuyện trong Messenger.

askPermission()

Yêu cầu quyền thực hiện các hành động như truy xuất thông tin trên trang cá nhân của một người.

getGrantedPermissions()

Kiểm tra các quyền hiện được cấp.

getSupportedFeatures

Kiểm tra để đảm bảo rằng các tính năng – chẳng hạn như chia sẻ – được hỗ trợ trong chế độ xem web trên thiết bị hiện tại.

Để biết đầy đủ các chi tiết về việc sử dụng những tính năng này, hãy xem Tài liệu tham khảo về SDK Tiện ích Messenger.

Cài đặt SDK

1. Đưa miền vào danh sách hợp lệ

Để sử dụng Tiện ích Messenger trong bot, trước tiên, bạn phải đưa miền phân phối trang vào danh sách hợp lệ. Vì lý do bảo mật, bạn phải thêm tất cả các miền trên trang web của mình vào danh sách hợp lệ. Hãy xem tài liệu tham khảo về cách đưa vào danh sách hợp lệ để biết thêm thông tin chi tiết.

Bạn có thể dễ dàng thêm miền vào danh sách hợp lệ theo cách lập trình thông qua API sau:

 
curl -X POST -H "Content-Type: application/json" -d '{
  "whitelisted_domains":[
    "https://petersfancyapparel.com"
  ]
}' "https://graph.facebook.com/v19.0/me/messenger_profile?access_token=PAGE_ACCESS_TOKEN"

Khi thành công, API Trang cá nhân Messenger sẽ phản hồi:

{"result":"success"}

2. Bao gồm SDK Tiện ích Messenger dành cho Javascript

Thêm SDK Tiện ích Messenger dành cho Javascript vào trang đang được tải trong chế độ xem web bằng mã bên dưới. Bạn nên chèn trực tiếp mã này sau thẻ body mở trên mỗi trang bạn muốn tải:

(function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/messenger.Extensions.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'Messenger'));

3. Chờ sự kiện tải SDK

window.extAsyncInit() sẽ được gọi khi SDK Tiện ích Messenger dành cho Javascript tải xong. Bạn có thể dùng hàm này làm nút kích hoạt để gọi các hàm khác có trong SDK.

window.extAsyncInit = function() {
  // the Messenger Extensions JS SDK is done loading 
};

Sử dụng SDK trong ứng dụng Messenger dành cho web

SDK Tiện ích Messenger được hỗ trợ để sử dụng trên cả ứng dụng Messenger dành cho di động và máy tính. Tuy nhiên, bạn có thể phải xem xét các yếu tố sau để tiện ích hoạt động đúng cách.

Bạn cũng có thể dùng thuộc tính window.name để kiểm tra vị trí của iframe từ mã phía ứng dụng.

Khi iframe được kích hoạt trên web Messenger, chúng tôi sẽ đặt window.name thành "messenger_ref". Nếu không, khi tải trong tab chat trên Facebook, window.name sẽ trở thành "facebook_ref".

Tính năng không được hỗ trợ

Các cài đặt hoặc tính năng sau không được hỗ trợ trên ứng dụng Messenger dành cho web, nhưng vẫn hoạt động đúng cách trên ứng dụng Messenger dành cho di động.

Khắc phục sự cố

Nếu bạn không thể gọi SDK Tiện ích Messenger từ trang của mình, hãy xem xét những điều sau:

  • Khi bạn đang mở chế độ xem web từ menu cố định hoặc nút, hãy đảm bảo rằng thông số messenger_extensions được đặt thành true. Nếu người dùng đã mở chế độ xem web qua tin nhắn được chia sẻ thì họ không nhất thiết phải tương tác với bot của bạn để Tiện ích Messenger hoạt động.
  • Kiểm tra để chắc chắn rằng bạn đã đưa miền lưu trữ trang vào danh sách hợp lệ.

  • Kiểm tra để đảm bảo rằng JS SDK được đưa vào mọi trang sử dụng tiện ích.

  • Đảm bảo bạn không cố gọi bất kỳ hàm nào trước khi SDK tải xong. Sử dụng window.extAsyncInitnhư mô tả tại đây để biết khi nào tải xong.

  • Đảm bảo trang đang được phân phối qua https và không bao gồm bất kỳ cổng không theo tiêu chuẩn nào.