# API Facebook

### Що таке постійне меню

Постійне меню дає змогу створювати й надсилати меню з основними функціями вашого бізнесу, такими як години роботи, адреси магазинів і товари. Воно завжди буде видно під час розмови людини з вашою компанією в Messenger.

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

#### Підтримувані кнопки:

Постійне меню складається з набору кнопок. У постійному меню підтримуються такі типи кнопок:

● Кнопки URL (web\_url)\
● Кнопки зворотного виклику (postback)

### Як додати постійне меню для певної сторінки

**response = fb\_set\_persistent\_menu("group\_id", buttons)**&#x434;е:\
**group\_id** - ID бота Facebook (можна знайти в **"Channel"** меню MaviBot)\
**buttons** - словник, що містить кнопки

**Приклад того, як структурувати словник кнопок**:\
buttons = {"default": \[\["postback", "Button 1", "callback\_text 1"], \["postback", "Button 2", "callback\_text 2"], \["web\_url", "Site link", "<https://mavibot.ai/"]]}>

**за замовчуванням** - обов’язковий ключ, який визначає масив кнопок, що відображатимуться в меню за замовчуванням, незалежно від локалізації користувача.\
Значення має бути масивом кнопок. Кожна кнопка описується як окремий масив у такому форматі:\
\["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** - 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"**


---

# 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/uk/chatbot/mesendzheri/facebook-messenger/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.
