Persistent Menu คืออะไร?
Persistent Menu ช่วยให้คุณแสดงเมนูถาวรที่มีการดำเนินการหลักของธุรกิจของคุณ เช่น เวลาทำการ สถานที่ตั้งร้านค้า สินค้า หรือตัวเลือกอื่นๆ ที่ใช้บ่อย เมนูนี้จะแสดงอยู่เสมอในระหว่างการสนทนากับบอท Facebook Messenger ของคุณ

ประเภทปุ่มที่รองรับ
Persistent Menu รองรับประเภทปุ่มดังต่อไปนี้:
-
ปุ่ม URL (
web_url) -
ปุ่ม Callback (
postback)
สร้าง Persistent Menu
ใช้ฟังก์ชันต่อไปนี้เพื่อสร้าง Persistent Menu สำหรับหน้า Facebook:
response = fb_set_persistent_menu(group_id, buttons)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
| group_id | Facebook Bot ID คุณสามารถค้นหาได้ในส่วน Channel ของโปรเจกต์ MaviBot ของคุณ |
| buttons | พจนานุกรมที่อธิบายปุ่มเมนู |
โครงสร้างพจนานุกรมปุ่ม
buttons = {
"default": [
["postback", "Button 1", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
]
}
คีย์ default เป็นสิ่งที่จำเป็น โดยจะกำหนดปุ่มที่แสดงสำหรับผู้ใช้ที่ไม่มีเมนูที่กำหนดเองตามตำแหน่งที่ตั้ง
แต่ละปุ่มจะถูกอธิบายด้วยอาร์เรย์:
["button_type", "Button text", "Value"]
รูปแบบปุ่มที่รองรับ
ปุ่ม Callback
["postback", "Button text", "callback_text"]
| ค่า | คำอธิบาย |
|---|---|
| postback | ประเภทปุ่ม |
| Button text | ข้อความที่แสดงบนปุ่ม |
| callback_text | ข้อความที่ส่งไปยังบอทเมื่อคลิกปุ่ม |
ปุ่ม URL
["web_url", "Button text", "https://example.com"]
| ค่า | คำอธิบาย |
|---|---|
| web_url | ประเภทปุ่ม |
| Button text | ข้อความที่แสดงบนปุ่ม |
| URL | เว็บไซต์ที่เปิดเมื่อคลิกปุ่ม |
การปรับภาษา (Localization)
คุณสามารถแสดงเมนูที่แตกต่างกันตามตำแหน่งที่ตั้งของผู้ใช้
เพียงเพิ่มคีย์เพิ่มเติมในพจนานุกรมปุ่ม
ตัวอย่าง:
buttons = {
"default": [
["postback", "Button 1", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
],
"en_EN": [
["postback", "Button", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
]
}
ในตัวอย่างนี้ ผู้ใช้ที่มีตำแหน่งที่ตั้ง en_EN จะได้รับเมนูที่แตกต่างกัน
ตำแหน่งที่ตั้งที่รองรับ
af_ZA, ar_AR, as_IN, az_AZ, be_BY, bg_BG, bn_IN, br_FR, bs_BA, ca_ES,
cb_IQ, co_FR, cs_CZ, cx_PH, cy_GB, da_DK, de_DE, el_GR, en_GB, en_UD,
en_US, es_ES, es_LA, et_EE, eu_ES, fa_IR, ff_NG, fi_FI, fo_FO, fr_CA,
fr_FR, fy_NL, ga_IE, gl_ES, gn_PY, gu_IN, ha_NG, he_IL, hi_IN, hr_HR,
hu_HU, hy_AM, id_ID, is_IS, it_IT, ja_JP, ja_KS, jv_ID, ka_GE, kk_KZ,
km_KH, kn_IN, ko_KR, ku_TR, lt_LT, lv_LV, mg_MG, mk_MK, ml_IN, mn_MN,
mr_IN, ms_MY, mt_MT, my_MM, nb_NO, ne_NP, nl_BE, nl_NL, nn_NO, or_IN,
pa_IN, pl_PL, ps_AF, pt_BR, pt_PT, qz_MM, ro_RO, ru_RU, rw_RW, sc_IT,
si_LK, sk_SK, sl_SI, so_SO, sq_AL, sr_RS, sv_SE, sw_KE, sz_PL, ta_IN,
te_IN, tg_TJ, th_TH, tl_PH, tr_TR, tz_MA, uk_UA, ur_PK, uz_UZ, vi_VN,
zh_CN, zh_HK, zh_TW
สร้าง Persistent Menu สำหรับผู้ใช้เฉพาะ
หากต้องการสร้างเมนูที่แสดงเฉพาะผู้ใช้ที่เรียกใช้ฟังก์ชัน ให้ส่ง 1 เป็นพารามิเตอร์ที่สาม
response = fb_set_persistent_menu(group_id, buttons, 1)
หมายเหตุ
Persistent Menu ระดับผู้ใช้จะได้รับการอัปเดตทันที
Persistent Menu ระดับหน้าอาจใช้เวลาถึง 24 ชั่วโมง ในการอัปเดต
Facebook ยังจำกัดการอัปเดตเมนูระดับผู้ใช้ไว้ที่ 10 คำขอต่อผู้ใช้ทุกๆ 10 นาที
ปิดการใช้งาน Composer
คุณสามารถปิดการใช้งาน Messenger composer เพื่อให้ผู้ใช้สามารถโต้ตอบกับบอท ผ่าน Persistent Menu เท่านั้น
สิ่งนี้มีประโยชน์เมื่อบอทควรอนุญาตเฉพาะการดำเนินการที่กำหนดไว้ล่วงหน้าเท่านั้น
ปิดการใช้งาน Composer สำหรับผู้ใช้ทั้งหมด
response = fb_set_persistent_menu(group_id, buttons, "", 1)
ปิดการใช้งาน Composer สำหรับผู้ใช้เฉพาะ
response = fb_set_persistent_menu(group_id, buttons, 1, 1)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย |
|---|---|
| group_id | Facebook Bot ID |
| buttons | พจนานุกรมปุ่ม |
| พารามิเตอร์ที่ 3 | ตั้งค่าเป็น 1 เพื่อใช้เมนูกับผู้ใช้ปัจจุบันเท่านั้น เว้นว่างไว้เพื่อใช้กับหน้า |
| พารามิเตอร์ที่ 4 | ตั้งค่าเป็น 1 เพื่อปิดการใช้งาน Messenger composer |
ค่าที่ส่งกลับ
หากฟังก์ชันทำงานสำเร็จ:
{"result":"success"}
มิฉะนั้น จะส่งคืนคำอธิบายข้อผิดพลาด
ตัวอย่าง:
Error parse buttons data
หรือ
{
"error": {
"message": "(#100) param persistent_menu[0][call_to_actions] must be non-empty.",
"type": "OAuthException",
"code": 100,
"fbtrace_id": "AJtVczu7TEJJxbMfnO"
}
}
ตัวอย่าง
สร้างเมนูสำหรับผู้ใช้ทั้งหมด
buttons = {
"default": [
["postback", "Button 1", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
],
"en_EN": [
["postback", "Button", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
]
}
response = fb_set_persistent_menu("123456789", buttons)
สร้างเมนูสำหรับผู้ใช้ทั้งหมดและปิดการใช้งาน Composer
buttons = {
"default": [
["postback", "Button 1", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
],
"en_EN": [
["postback", "Button", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
]
}
response = fb_set_persistent_menu("123456789", buttons, "", 1)
สร้างเมนูสำหรับผู้ใช้ปัจจุบัน
buttons = {
"default": [
["postback", "Button 1", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
]
}
response = fb_set_persistent_menu("123456789", buttons, 1)
สร้างเมนูผู้ใช้และปิดการใช้งาน Composer
buttons = {
"default": [
["postback", "Button 1", "callback_text 1"],
["postback", "Button 2", "callback_text 2"],
["web_url", "Website", "https://mavibot.ai/"]
]
}
response = fb_set_persistent_menu("123456789", buttons, 1, 1)
ลบ Persistent Menu
ลบเมนูระดับหน้า
response = fb_delete_persistent_menu(group_id)
การตอบกลับที่สำเร็จ:
{"result":"success"}
ข้อผิดพลาดที่อาจเกิดขึ้น:
Bot not found
ลบเมนูระดับผู้ใช้
response = fb_delete_persistent_menu(group_id, 1)
การตอบกลับที่สำเร็จ:
{"result":"success"}
ข้อผิดพลาดที่อาจเกิดขึ้น:
Bot not found