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

ปุ่มที่รองรับ:
เมนูถาวรประกอบด้วยชุดปุ่มต่างๆ ปุ่มประเภทต่อไปนี้รองรับในเมนูถาวร:
● ปุ่ม URL (web_url)
● ปุ่ม Callback (postback)
วิธีเพิ่มเมนูถาวรสำหรับเพจที่ระบุ
response = fb_set_persistent_menu("group_id", buttons) โดยที่:
group_id - ID บอท Facebook (สามารถดูได้ในเมนู "Channel" ของ MaviBot)
buttons - พจนานุกรมที่ประกอบด้วยปุ่มต่างๆ
ตัวอย่างการจัดโครงสร้างพจนานุกรมปุ่ม:
buttons = {"default": [["postback", "ปุ่ม 1", "callback_text 1"], ["postback", "ปุ่ม 2", "callback_text 2"], ["web_url", "ลิงก์เว็บไซต์", "https://mavibot.ai/"]]}
default - คีย์ที่จำเป็นซึ่งกำหนดอาร์เรย์ของปุ่มที่จะแสดงในเมนูตามค่าเริ่มต้น โดยไม่ขึ้นกับการตั้งค่าภาษาของผู้ใช้
ค่าควรเป็นอาร์เรย์ของปุ่ม แต่ละปุ่มจะถูกอธิบายเป็นอาร์เรย์แยกต่างหากในรูปแบบต่อไปนี้:
["button_type", "ข้อความที่แสดงบนปุ่ม", "ข้อความ Callback ที่ส่งไปยังบอท"]
ประเภทปุ่มและคำอธิบาย:
&#xNAN;- ปุ่ม callback:
["postback", "ข้อความที่แสดงบนปุ่ม", "ข้อความ Callback ที่ส่งไปยังบอท"]
&#xNAN;- ปุ่ม URL:
["web_url", "ข้อความที่แสดงบนลิงก์", "https://example.com"]
วิธีกำหนดค่าเมนูตามการตั้งค่าภาษาของผู้ใช้
คุณสามารถตั้งค่าปุ่มสำหรับภูมิภาคต่างๆ ได้โดยการเพิ่มคีย์เพิ่มเติมในพจนานุกรมปุ่มที่สอดคล้องกับโลแคลเฉพาะ
ตัวอย่างเช่น หากต้องการเพิ่มปุ่มสำหรับโลแคลภาษาอังกฤษ:
buttons = {"default": [["postback", "ปุ่ม 1", "callback_text 1"], ["postback", "ปุ่ม 2", "callback_text 2"], ["web_url", "ลิงก์เว็บไซต์", "https://mavibot.ai/"]], "en_EN": [["postback", "ปุ่ม", "callback_text 1"], ["postback", "ปุ่ม 2", "callback_text 2"], ["web_url", "ลิงก์", "https://mavibot.ai/"]]}
หมายเหตุ: ในกรณีนี้ คีย์จะแทนโลแคลที่ปุ่มจะถูกแสดง
โลแคลที่รองรับ:
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
วิธีเพิ่มเมนูถาวรสำหรับผู้ใช้ที่ระบุ
ในการดำเนินการนี้ ให้ตั้งค่าพารามิเตอร์ที่สามของฟังก์ชัน fb_set_persistent_menu เป็น 1 ดังนี้: response = fb_set_persistent_menu('group_id', buttons, 1)
เมนูนี้จะพร้อมใช้งานสำหรับผู้ใช้ที่เรียกใช้ฟังก์ชัน
หมายเหตุ . การอัปเดต เมนูถาวรระดับผู้ใช้ จะมีผลทันทีแบบเรียลไทม์
อย่างไรก็ตาม การอัปเดตเมนูถาวรระดับเพจอาจใช้เวลาถึง 24 ชั่วโมงการตั้งค่าระดับผู้ใช้ ถูกจำกัด ที่อัตรา 10 ครั้งต่อผู้ใช้ทุกๆ 10 นาที
วิธีปิดการสื่อสารทั้งหมดยกเว้นเมนูถาวร
หากต้องการให้เมนูถาวรเป็นวิธีเดียวที่ผู้ใช้สามารถโต้ตอบกับบอท Messenger ของคุณได้ คุณต้องปิดใช้งาน composer
ทำไมถึงต้องทำเช่นนี้?
มีประโยชน์เมื่อบอทของคุณถูกออกแบบมาเพื่อวัตถุประสงค์เฉพาะหรือชุดตัวเลือกที่กำหนดไว้ล่วงหน้า
วิธีดำเนินการ?
หากต้องการปิดใช้งาน composer ให้ส่ง 1 เป็นพารามิเตอร์ที่สี่ในฟังก์ชัน:
เพื่อปิดใช้งาน composer ในระดับเพจ (สำหรับผู้ใช้ทั้งหมด):
response = fb_set_persistent_menu('group_id', buttons, '', 1)
เพื่อปิดใช้งาน composer สำหรับผู้ใช้ที่เรียกใช้ฟังก์ชัน:
response = fb_set_persistent_menu('group_id', buttons, 1, 1)
โดยที่:
group_id - ID บอท Facebook (สามารถดูได้ในเมนู "Channel" ของ MaviBot)
buttons - พจนานุกรมที่ประกอบด้วยปุ่มต่างๆ
หากสำเร็จ ฟังก์ชันจะส่งคืน:
{"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", "Site link", "https://mavibot.ai/"]], "en_EN": [["postback", "Button", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons)
การเพิ่มเมนูสำหรับผู้ใช้ทั้งหมดและทำให้เมนูนี้เป็นวิธีการสื่อสารเดียวสำหรับทุกคน:
buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://mavibot.ai/"]], "en_EN": [["postback", "Button", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Link", "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", "Site link", "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", "Site link", "https://mavibot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, 1, 1)
ลบเมนูถาวรในระดับเพจ (สำหรับผู้ใช้ทั้งหมด):
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"


