Tài liệu này hướng dẫn cách thêm Menu cố định vào trải nghiệm nhắn tin của bạn theo lập trình.
Messenger from Meta dành cho Android (v276 trở lên) sẽ không hỗ trợ menu cố định lồng nhau nữa. Những trang chứa các mục menu lồng nhau sẽ hiển thị dưới dạng danh sách phẳng trên mọi giao diện (web, iOS và Android (v276 trở lên)). Chúng tôi tin rằng thay đổi này sẽ tạo ra trải nghiệm tốt hơn nữa cho mọi người trên Messenger. Chúng tôi sẽ không còn hỗ trợ menu lồng nhau trên cả API Trang cá nhân Messenger lẫn API Cài đặt người dùng tùy chỉnh trong API Đồ thị v8.0, thông qua sự thay đổi quan trọng trong 2 năm trên mọi phiên bản.
Cách hoạt độngVới Menu cố định, bạn có thể tạo và gửi một menu gồm các tính năng chính của doanh nghiệp - chẳng hạn như giờ làm việc, vị trí cửa hàng và sản phẩm - để menu này luôn hiển thị trong cuộc trò chuyện trên Messenger của người dùng với doanh nghiệp bạn. Khi người dùng nhấp vào một mục trong menu, hệ thống sẽ gửi thông báo webhook |
Nếu bạn đặt Lệnh, chúng sẽ được ưu tiên hơn so với Menu cố định.
Menu cố định sẽ hiển thị nếu đáp ứng các điều kiện sau:
pages_messaging
.Menu cố định bao gồm một mảng nút. Các loại nút sau được hỗ trợ trong menu cố định:
web_url
: Chỉ định mục là một nút URL.postback
: Chỉ định mục là một nút yêu cầu đăng lại.Để thiết lập menu cố định, hãy gửi yêu cầu POST
đến API Trang cá nhân Messenger để đặt thuộc tính persistent_menu
của trang cá nhân Messenger cho bot.
Để thay thế menu lồng nhau đã ngừng hoạt động, chúng tôi cho phép tối đa 20 nút trong mảng call_to_actions
đối với API Đồ thị v8.0 trở lên.
{
"persistent_menu": [
{
"locale": "default",
"composer_input_disabled": false,
"call_to_actions": [
{
"type": "postback",
"title": "Talk to an agent",
"payload": "CARE_HELP"
},
{
"type": "postback",
"title": "Outfit suggestions",
"payload": "CURATION"
},
{
"type": "web_url",
"title": "Shop now",
"url": "https://www.originalcoastclothing.com/",
"webview_height_ratio": "full"
}
]
}
]
}
Tính năng này đã ngừng hoạt động trên v8.0 trở lên.
Bạn có thể tắt trình biên soạn để biến menu cố định thành cách duy nhất cho người dùng tương tác với bot Messenger. Việc này khá hữu ích nếu bot của bạn có mục đích hoặc nhóm tùy chọn rất cụ thể.
Để thực hiện việc này, hãy đặt "composer_input_disabled":true
khi bạn tạo menu cố định.
Bạn có thể cung cấp văn bản nút mặc định cũng như đã bản địa hóa cho menu cố định. Văn bản này sẽ hiển thị dựa trên ngôn ngữ của người dùng.
Để thực hiện việc này, hãy chỉ định một đối tượng riêng trong mảng persistent_menu
cho từng ngôn ngữ. Để chỉ định ngôn ngữ cho từng đối tượng, hãy đặt thuộc tính locale
thành ngôn ngữ được hỗ trợ:
{
"locale":"default",
"call_to_actions":[...]
},
{
"locale: "zh_CN",
"call_to_actions":[...]
}
Vào ngày 04/12/2019, chúng tôi đã cải tiến menu cố định để hỗ trợ các thay đổi tự động nhằm cá nhân hóa hơn nữa trải nghiệm trò chuyện.
Bạn có thể ghi đè menu cố định ở cấp độ Trang bằng một tùy chọn cài đặt ở cấp độ người dùng. Nhờ đó, ứng dụng của bạn có thể tự động kiểm soát:
Để bật hoặc tắt tùy chọn cài đặt ở cấp độ người dùng, một điểm cuối khác có tên custom_user_settings
sẽ được sử dụng. Điểm cuối này hỗ trợ các lệnh gọi POST, GET và DELETE.
Các cấu hình tương tự có sẵn cho menu cố định ở cấp độ Trang sẽ được áp dụng ở cấp độ người dùng. Điểm khác biệt chính đó là cần có thông số psid
để cho người dùng biết rằng việc ghi đè này sẽ được áp dụng.
LƯU Ý: Quá trình cập nhật menu cố định ở cấp độ người dùng diễn ra theo thời gian thực, trong khi quá trình cập nhật menu cố định ở cấp độ trang có thể mất đến 24 giờ.
Các cài đặt ở cấp độ người dùng được giới hạn tốc độ ở 10 lệnh gọi/người dùng/10 phút.
Yêu cầu này sẽ ghi đè các tùy chọn cài đặt hiện tại ở cấp độ trang cho người dùng này.
curl -X POST -H "Content-Type: application/json" -d '{
"psid": "<PSID>",
"persistent_menu": [
{
"locale": "default",
"composer_input_disabled": false,
"call_to_actions": [
{
"type": "postback",
"title": "Talk to an agent",
"payload": "CARE_HELP"
},
{
"type": "postback",
"title": "Outfit suggestions",
"payload": "CURATION"
},
{
"type": "web_url",
"title": "Shop now",
"url": "https://www.originalcoastclothing.com/",
"webview_height_ratio": "full"
}
]
}
]
}' "https://graph.facebook.com/v21.0
/me/custom_user_settings?access_token=<PAGE_ACCESS_TOKEN>"
Yêu cầu này sẽ truy xuất các tùy chọn cài đặt hiện tại ở cấp độ trang và người dùng. Nếu không có tùy chọn cài đặt nào ở cấp độ người dùng, chỉ các tùy chọn cài đặt ở cấp độ trang sẽ được trả về.
curl -X GET "https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>&access_token=<PAGE_ACCESS_TOKEN>"
Kết quả
{ "data": [ { "user_level_persistent_menu": [ { "locale": "default", "composer_input_disabled": false, "call_to_actions": [ { "type": "postback", "title": "Talk to an agent", "payload": "CARE_HELP" }, { "type": "postback", "title": "Outfit suggestions", "payload": "CURATION" }, { "type": "web_url", "title": "Shop now", "url": "https://www.originalcoastclothing.com/", "webview_height_ratio": "full" } ] } ], "page_level_persistent_menu": [ Original Page Menu... ] } ] }
Yêu cầu này sẽ gỡ các cài đặt ở cấp độ người dùng, để lại menu ở cấp độ Trang nếu đã đặt.
curl -X DELETE 'https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>¶ms=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'
Trong một số trường hợp, bạn nên tắt menu cố định cho bot của mình trong Plugin chat. Để thực hiện việc này, hãy thêm "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"]
khi bạn đặt menu cố định:
{
"persistent_menu":[
{
"locale":"default",
"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"My Account",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
Giống như các nút, các mục menu có thể tạo ra chế độ xem web hoặc yêu cầu đăng lại. Hãy lưu ý rằng menu phụ không được hỗ trợ.
Dùng menu cho các điểm bắt đầu sử dụng chức năng của bot.
Mô tả rõ ràng: menu cho mọi người biết bot của bạn có thể làm gì. Menu cho người dùng biết ngay lập tức những vấn đề họ có thể liên hệ với bot của bạn trong tương lai.
Chọn lọc trình bày các chức năng cốt lõi của bot và cố gắng giới hạn số mục menu ở 5 để mang lại trải nghiệm tốt nhất cho người dùng.
Đừng kỳ vọng menu chứa dữ liệu dành riêng cho người dùng: menu giống nhau đối với tất cả những người sử dụng bot, mặc dù có thể được bản địa hóa.
Không đặt nút ''Menu'' vào menu gửi cho người dùng một tin nhắn có chứa menu nào đó. Chỉ đặt trực tiếp nội dung đó vào menu – mục đích của menu là vậy!
Không đặt các hành động chung chung như ''Khởi động lại'' trong menu.
Không sử dụng thành phần của menu chính cho menu phụ, những thông tin kiểu "chuyên mục" như về điều khoản dịch vụ, chính sách quyền riêng tư hoặc ''bên cung cấp'' mà quên hiển thị chức năng chính của bot.