ما هي القائمة الثابتة؟

تتيح لك القائمة الثابتة عرض قائمة دائمة تحتوي على الإجراءات الرئيسية لنشاطك التجاري، مثل ساعات العمل، مواقع المتاجر، المنتجات، أو خيارات أخرى شائعة الاستخدام. تظل القائمة مرئية دائمًا أثناء المحادثة مع بوت Messenger الخاص بك على فيسبوك.

أنواع الأزرار المدعومة

تدعم القائمة الثابتة أنواع الأزرار التالية:

  • أزرار URL (web_url)
  • أزرار رد الاتصال (postback)

إنشاء قائمة ثابتة

استخدم الدالة التالية لإنشاء قائمة ثابتة لصفحة فيسبوك:

response = fb_set_persistent_menu(group_id, buttons)

المعاملات

المعامل الوصف
group_id معرف بوت فيسبوك. يمكنك العثور عليه في قسم القناة في مشروع MaviBot الخاص بك.
buttons قاموس يصف أزرار القائمة.

هيكل قاموس الأزرار

buttons = {
    "default": [
        ["postback", "الزر 1", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ]
}

المفتاح default مطلوب. وهو يحدد الأزرار المعروضة للمستخدمين الذين لا تحتوي لغتهم المحلية على قائمة مخصصة.

يتم وصف كل زر بمصفوفة:

["نوع_الزر", "نص الزر", "القيمة"]

تنسيقات الأزرار المدعومة

زر رد الاتصال

["postback", "نص الزر", "نص_الرد"]
القيمة الوصف
postback نوع الزر.
نص الزر النص المعروض على الزر.
نص_الرد النص المرسل إلى البوت عند النقر على الزر.

زر URL

["web_url", "نص الزر", "https://example.com"]
القيمة الوصف
web_url نوع الزر.
نص الزر النص المعروض على الزر.
URL الموقع الإلكتروني الذي يتم فتحه عند النقر على الزر.

التوطين

يمكنك عرض قوائم مختلفة اعتمادًا على اللغة المحلية للمستخدم.

ما عليك سوى إضافة مفاتيح إضافية إلى قاموس الأزرار.

مثال:

buttons = {
    "default": [
        ["postback", "الزر 1", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "الزر", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "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

إنشاء قائمة ثابتة لمستخدم معين

لإنشاء قائمة تكون مرئية فقط للمستخدم الذي يتم استدعاء الدالة من أجله، قم بتمرير 1 كمعامل ثالث.

response = fb_set_persistent_menu(group_id, buttons, 1)

ملاحظة

يتم تحديث القوائم الثابتة على مستوى المستخدم فورًا.

قد يستغرق تحديث القوائم الثابتة على مستوى الصفحة ما يصل إلى 24 ساعة.

يحد فيسبوك أيضًا من تحديثات القائمة على مستوى المستخدم إلى 10 طلبات لكل مستخدم كل 10 دقائق.


تعطيل المحرر

يمكنك تعطيل محرر Messenger بحيث يمكن للمستخدمين التفاعل مع البوت فقط من خلال القائمة الثابتة.

هذا مفيد عندما يجب أن يسمح البوت فقط بالإجراءات المحددة مسبقًا.

تعطيل المحرر لجميع المستخدمين

response = fb_set_persistent_menu(group_id, buttons, "", 1)

تعطيل المحرر لمستخدم معين

response = fb_set_persistent_menu(group_id, buttons, 1, 1)

المعاملات

المعامل الوصف
group_id معرف بوت فيسبوك.
buttons قاموس الأزرار.
المعامل الثالث قم بتعيينه إلى 1 لتطبيق القائمة على المستخدم الحالي فقط. اتركه فارغًا لتطبيقه على الصفحة.
المعامل الرابع قم بتعيينه إلى 1 لتعطيل محرر Messenger.

قيم الإرجاع

إذا اكتملت الدالة بنجاح:

{"result":"success"}

وإلا، يتم إرجاع وصف للخطأ.

مثال:

خطأ في تحليل بيانات الأزرار

أو

{
  "error": {
    "message": "(#100) param persistent_menu[0][call_to_actions] must be non-empty.",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "AJtVczu7TEJJxbMfnO"
  }
}

أمثلة

إنشاء قائمة لجميع المستخدمين

buttons = {
    "default": [
        ["postback", "الزر 1", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "الزر", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons)

إنشاء قائمة لجميع المستخدمين وتعطيل المحرر

buttons = {
    "default": [
        ["postback", "الزر 1", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ],
    "en_EN": [
        ["postback", "الزر", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons, "", 1)

إنشاء قائمة للمستخدم الحالي

buttons = {
    "default": [
        ["postback", "الزر 1", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons, 1)

إنشاء قائمة مستخدم وتعطيل المحرر

buttons = {
    "default": [
        ["postback", "الزر 1", "نص_الرد 1"],
        ["postback", "الزر 2", "نص_الرد 2"],
        ["web_url", "الموقع الإلكتروني", "https://mavibot.ai/"]
    ]
}

response = fb_set_persistent_menu("123456789", buttons, 1, 1)

حذف قائمة ثابتة

حذف القائمة على مستوى الصفحة

response = fb_delete_persistent_menu(group_id)

الاستجابة الناجحة:

{"result":"success"}

الخطأ المحتمل:

لم يتم العثور على البوت

حذف قائمة على مستوى المستخدم

response = fb_delete_persistent_menu(group_id, 1)

الاستجابة الناجحة:

{"result":"success"}

الخطأ المحتمل:

لم يتم العثور على البوت