# واجهة برمجة تطبيقات فيسبوك

### ما هي القائمة الدائمة

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

<figure><img src="/files/c86f36f9978b25f563a62bba5d9c452152f59817" alt="" width="230"><figcaption></figcaption></figure>

#### الأزرار المدعومة:

تتكون القائمة الدائمة من مجموعة من الأزرار. الأنواع التالية من الأزرار مدعومة في القائمة الدائمة:

● أزرار URL (web\_url)\
● أزرار الاستدعاء (postback)

### كيفية إضافة قائمة دائمة لصفحة محددة

**response = fb\_set\_persistent\_menu("group\_id", buttons)**، حيث:\
**group\_id** - معرّف بوت فيسبوك، (يمكن العثور عليه في **"Channel"** قائمة MaviBot)\
**buttons** - قاموس يحتوي على الأزرار

**مثال على كيفية تنظيم قاموس الأزرار** :\
buttons = {"default": \[\["postback", "Button 1", "callback\_text 1"], \["postback", "Button 2", "callback\_text 2"], \["web\_url", "Site link", "<https://mavibot.ai/"]]}>

**default** - مفتاح مطلوب يحدد مصفوفة الأزرار التي ستُعرض في القائمة افتراضيًا، بغض النظر عن لغة المستخدم.\
يجب أن تكون القيمة مصفوفة من الأزرار. يُوصف كل زر كمصفوفة منفصلة بالتنسيق التالي:\
\["button\_type", "Button display text", "Callback text sent to the bot"]

**أنواع الأزرار ووصفها:**\
\&#xNAN;*- زر استدعاء:*\
\["postback", "Button display text", "Callback text sent to the bot"]\
\&#xNAN;*- زر URL:*\
\["web\_url", "Link display text", "<https://example.com>"]

### كيفية تهيئة القائمة بناءً على لغة المستخدم

يمكنك إعداد أزرار لمناطق مختلفة بإضافة مفاتيح إضافية إلى قاموس الأزرار تتوافق مع لغات محلية محددة.

على سبيل المثال، لإضافة أزرار للغة الإنجليزية المحلية:

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/"]]}>

{% hint style="info" %}
ملاحظة: في هذه الحالة، يمثّل المفتاح اللغة المحلية التي ستُعرض لها الأزرار.
{% endhint %}

**اللغات المحلية المدعومة**:\
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)

ستكون هذه القائمة متاحة للمستخدم الذي تم استدعاء الدالة من أجله.

{% hint style="info" %} <mark style="color:red;">**ملاحظة**</mark> . **التحديث** على مستوى المستخدم **القائمة الدائمة** يصبح ساريًا في الوقت الفعلي.\
ومع ذلك، قد يستغرق تحديث قائمة دائمة على مستوى الصفحة ما يصل إلى 24 ساعة.

إعدادات مستوى المستخدم <mark style="color:red;">محدودة</mark> بمعدل 10 استدعاءات لكل مستخدم كل 10 دقائق.
{% endhint %}

### كيفية تعطيل جميع وسائل الاتصال باستثناء القائمة الدائمة

لجعل القائمة الدائمة هي الطريقة الوحيدة التي يمكن للمستخدم من خلالها التفاعل مع بوت Messenger الخاص بك، تحتاج إلى تعطيل محرر الرسائل.

#### لماذا قد تفعل ذلك؟

يكون ذلك مفيدًا عندما يكون البوت مصممًا لغرض محدد أو لمجموعة محددة مسبقًا من الخيارات.

#### كيف تفعل ذلك؟

لتعطيل محرر الرسائل، مرّر 1 كمعامل رابع في الدالة:

لتعطيل محرر الرسائل على مستوى الصفحة (لجميع المستخدمين):\
**response = fb\_set\_persistent\_menu('group\_id', buttons, '', 1)**\
لتعطيل محرر الرسائل للمستخدم الذي يتم استدعاء الدالة من أجله:\
**response = fb\_set\_persistent\_menu('group\_id', buttons, 1, 1)**\
حيث:\
**group\_id** - معرّف بوت فيسبوك، (يمكن العثور عليه في **"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"**


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ar/chatbot/ttbyqat-almraslh/fysbwk-masnjr/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
