เอกสารนี้จะแสดงให้คุณเห็นวิธีเพิ่มเมนูถาวรลงในประสบการณ์การส่งข้อความของคุณโดยใช้โปรแกรม
Messenger from Meta สำหรับ Android (เวอร์ชั่น 276 ขึ้นไป) จะไม่รองรับเมนูถาวรแบบซ้อนกันอีกต่อไป โดยเพจที่มีรายการเมนูแบบซ้อนกันจะแสดงเป็นรายการแบบระดับเดียวบนทุกแพลตฟอร์ม (เว็บ, iOS และ Android (เวอร์ชั่น 276 ขึ้นไป)) เราเชื่อว่าการทำเช่นนี้จะสร้างประสบการณ์ที่ดียิ่งกว่าเดิมให้กับผู้คนบน Messenger เราจะยกเลิกการรองรับเมนูแบบซ้อนกันจากทั้ง API โปรไฟล์ Messenger และ API การตั้งค่าผู้ใช้แบบกำหนดเองใน API กราฟเวอร์ชั่น 8.0 โดยจะมีการประกาศให้ทราบถึงการเปลี่ยนแปลงที่ส่งผลต่อการทำงานเป็นเวลา 2 ปีในทุกเวอร์ชั่น
วิธีการทำงานเมนูถาวรช่วยให้คุณสามารถสร้างและส่งเมนูฟีเจอร์หลักๆ ของธุรกิจของคุณ เช่น เวลาทำการ ตำแหน่งที่ตั้งของร้านค้า และสินค้าต่างๆ ซึ่งจะปรากฏให้เห็นตลอดเวลาในการสนทนาใน Messenger ของบุคคลกับธุรกิจของคุณ เมื่อผู้คนคลิกที่รายการหนึ่งในเมนู ระบบจะส่งการแจ้งเตือน Webhook |
หากตั้งคำสั่งไว้ คำสั่งเหล่านี้จะมีผลเหนือเมนูถาวร
หากต้องการให้เมนูถาวรปรากฏ จำเป็นต้องมีเงื่อนไขต่อไปนี้:
pages_messaging
เมนูถาวรประกอบด้วยอาร์เรย์ปุ่มต่างๆ ซึ่งประเภทปุ่มต่อไปนี้รองรับอยู่ในเมนูถาวร
web_url
: ระบุว่ารายการนั้นๆ เป็นปุ่ม URLpostback
: ระบุว่ารายการนั้นๆ เป็นปุ่มโพสต์ย้อนกลับหากต้องการตั้งค่าเมนูถาวร ให้ส่งคำขอ POST
ไปยัง API โปรไฟล์ Messenger เพื่อตั้งค่าคุณสมบัติ persistent_menu
ของโปรไฟล์ Messenger ของบอทคุณ
เราอนุญาตให้มีปุ่มได้มากถึง 20 ปุ่มในอาร์เรย์ call_to_actions
สำหรับ API กราฟ เวอร์ชั่น 8.0 ขึ้นไป เพื่อเป็นการทดแทนเมนูระดับแบบซ้อนกันที่เลิกใช้แล้ว
{
"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"
}
]
}
]
}
เราได้เลิกใช้ฟีเจอร์นี้ในเวอร์ชั่น 8.0 ขึ้นไป
คุณสามารถปิดใช้งานช่องเขียนข้อความเพื่อทำให้เมนูถาวรเป็นวิธีเดียวสำหรับบุคคลในการโต้ตอบกับบอท Messenger ของคุณ ซึ่งจะเป็นประโยชน์หากบอทของคุณมีวัตถุประสงค์หรือหรือชุดตัวเลือกที่เฉพาะเจาะจงมาก
ในการดำเนินการนี้ ให้ตั้งค่า "composer_input_disabled":true
ขณะที่คุณสร้างเมนูถาวร
คุณสามารถระบุข้อความปุ่มของเมนูถาวรทั้งภาษาเริ่มต้นและภาษาท้องถิ่นได้ ซึ่งการแสดงผลจะเป็นไปตามรูปแบบภาษาของผู้ใช้
ในการดำเนินการนี้ ให้ระบุอ็อบเจ็กต์แยกต่างหากในอาร์เรย์ persistent_menu
สำหรับแต่ละรูปแบบภาษา ในการระบุรูปแบบภาษาสำหรับแต่ละอ็อบเจ็กต์ ให้ตั้งค่าคุณสมบัติ locale
เป็นรูปแบบภาษาที่รองรับดังนี้
{
"locale":"default",
"call_to_actions":[...]
},
{
"locale: "zh_CN",
"call_to_actions":[...]
}
เมื่อวันที่ 4 ธันวาคม 2019 เราได้ทำการปรับปรุงเมนูถาวรเพื่อรองรับการเปลี่ยนแปลงแบบไดนามิก เพื่อปรับแต่งประสบการณ์ด้านการสนทนาให้เหมาะกับแต่ละบุคคลยิ่งขึ้น
คุณสามารถแทนที่เมนูถาวรระดับเพจได้ด้วยการตั้งค่าระดับผู้ใช้ ซึ่งจะช่วยให้แอพของคุณควบคุมสิ่งต่อไปนี้แบบไดนามิกได้:
ในการเปิดหรือปิดใช้งานการตั้งค่าระดับผู้ใช้ ระบบจะใช้ตำแหน่งข้อมูลอื่นที่ชื่อว่า custom_user_settings
ซึ่งตำแหน่งข้อมูลนี้รองรับการเรียกใช้ POST, GET และ DELETE
ตัวกำหนดค่าแบบเดียวกันนี้ที่มีให้ใช้สำหรับเมนูถาวรระดับเพจจะใช้กับระดับผู้ใช้ด้วยเช่นกัน ข้อแตกต่างที่สำคัญคือจำเป็นต้องใช้พารามิเตอร์ psid
เพื่อระบุผู้ใช้ที่การแทนที่นี้จะมีผลด้วย
หมายเหตุ: ระบบจะอัพเดตเมนูถาวรระดับผู้ใช้แบบเรียลไทม์ ในขณะที่การอัพเดตเมนูถาวรระดับเพจอาจใช้เวลาถึง 24 ชั่วโมง
การตั้งค่าระดับผู้ใช้จะมีการจำกัดอัตราอยู่ที่เรียกใช้ 10 ครั้งต่อผู้ใช้ต่อ 10 นาที
การดำเนินการนี้จะแทนที่การตั้งค่าระดับเพจในปัจจุบันของผู้ใช้รายนี้
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>"
การดำเนินการนี้จะดึงข้อมูลการตั้งค่าระดับผู้ใช้และระดับเพจในปัจจุบัน หากไม่มีการตั้งค่าระดับผู้ใช้ ระบบจะส่งคืนการตั้งค่าระดับเพจเท่านั้น
curl -X GET "https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>&access_token=<PAGE_ACCESS_TOKEN>"
ผลลัพธ์
{ "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... ] } ] }
การดำเนินการนี้จะลบการตั้งค่าระดับผู้ใช้ออก โดยจะเหลือเมนูระดับเพจไว้หากมีการตั้งค่า
curl -X DELETE 'https://graph.facebook.com/v21.0
/me/custom_user_settings?psid=<PSID>¶ms=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'
มีบางกรณีที่ควรปิดใช้งานเมนูถาวรสำหรับบอทในปลั๊กอินแชท โดยเพิ่ม "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"]
เมื่อตั้งค่าเมนูถาวร:
{
"persistent_menu":[
{
"locale":"default",
"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"My Account",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
รายการเมนูสามารถสร้างตัวแสดงหน้าเว็บหรือโพสต์ย้อนกลับได้เช่นเดียวกับปุ่ม โปรดทราบว่าไม่มีการรองรับเมนูระดับรอง
โปรดใช้เมนูดังกล่าวเพื่อเข้าใช้ฟังก์ชั่นการทำงานของบอทคุณ
โปรดใช้ภาษาเชิงอธิบาย เนื่องจากเมนูของคุณจะช่วยให้ผู้อื่นทราบว่าบอทของคุณทำอะไรได้บ้าง ซึ่งจะช่วยให้ผู้ใช้ทราบได้ทันทีว่าตนสามารถใช้บอทของคุณเพื่อจุดประสงค์ใดได้บ้างในอนาคต
เลือกนำเสนอเฉพาะฟังก์ชั่นหลักๆ ของบอทคุณ และพยายามจำกัดรายการเมนูให้ไม่เกิน 5 รายการเพื่อให้ผู้ใช้ได้รับประสบการณ์ที่ดีที่สุด
อย่าคาดหวังว่าเมนูจะมีข้อมูลสำหรับผู้ใช้คนใดคนหนึ่งโดยเฉพาะ ทั้งนี้เพราะเมนูจะมีลักษณะเหมือนกันสำหรับผู้ใช้บอทของคุณทุกราย ถึงแม้ว่าจะสามารถแปลเป็นภาษาท้องถิ่นได้ก็ตาม
ห้ามใส่ปุ่ม "เมนู" ในเมนูที่ส่งข้อความที่มีเมนูให้ผู้ใช้ โปรดใส่เพียงเนื้อหานั้นลงในเมนูโดยตรง เพราะนี่จุดประสงค์หลักของการใช้เมนู
ห้ามระบุการดำเนินการทั่วไปอย่าง "เริ่มใหม่" ลงในเมนู
ห้ามใช้พื้นที่เมนูหลักสำหรับใส่ข้อมูลรอง ซึ่งเป็นข้อมูลที่มีลักษณะเป็น "คำอธิบายทั่วไป" เช่น ส่วน "เกี่ยวกับ", "ข้อกำหนดในการใช้บริการ", "ความเป็นส่วนตัว" หรือ "สนับสนุนโดย" โดยไม่ได้แสดงถึงฟังก์ชั่นการทำงานหลักของบอท