# API do Instagram

### O que é um menu persistente

<div data-with-frame="true"><figure><img src="/files/bd05bb067ba4e21a03514152b150a7fc698fbf8b" alt="" width="230"><figcaption></figcaption></figure></div>

Um menu persistente permite criar e enviar um menu com as principais funções da sua empresa, como horário de funcionamento, locais das lojas e produtos. Ele ficará sempre visível durante a conversa de uma pessoa com sua empresa no Messenger.

#### Botões suportados:

O menu persistente consiste em um conjunto de botões. Os seguintes tipos de botões são suportados no menu persistente:

● Botões de URL (web\_url)\
● Botões de callback (postback)

### Como adicionar um menu persistente

**response = ig\_set\_persistent\_menu(login, buttons),** onde:\
**login** - seu login do Instagram (pode ser encontrado no **"Channel"** menu MaviBot)\
**buttons** - um dicionário contendo botões

**Exemplo de como estruturar o dicionário de botões**:\
buttons = {"default": \[\["postback", "Botão 1", "callback\_text 1"], \["postback", "Botão 2", "callback\_text 2"], \["web\_url", "Link do site", "<https://mavibot.ai/"]]}\\>
**default** - uma chave obrigatória que define a matriz de botões a ser exibida no menu por padrão, independentemente da localização do usuário.\
O valor deve ser uma matriz de botões. Cada botão é descrito como uma matriz separada no seguinte formato:

\["tipo\_do\_botão", "Texto exibido no botão", "Texto de callback enviado ao bot"]

**Tipos de botões e sua descrição:**\
\&#xNAN;*- botão de callback:*\
\["postback", "Texto exibido no botão", "Texto de callback enviado ao bot"]\
\&#xNAN;*- botão de URL:*\
\["web\_url", "Texto do link", "<https://example.com>"]

### Como configurar o menu com base na localização do usuário

Você pode definir botões para diferentes regiões adicionando chaves extras ao dicionário de botões correspondentes a locais específicos.

Por exemplo, para adicionar botões para a localidade em inglês:

buttons = {"default": \[\["postback", "Botão 1", "callback\_text 1"], \["postback", "Botão 2", "callback\_text 2"], \["web\_url", "Link do site", "<https://mavibot.ai/>"]], **"en\_EN"**: \[\["postback", "Botão", "callback\_text 1"], \["postback", "Botão 2", "callback\_text 2"], \["web\_url", "Link", "<https://mavibot.ai/"]]}>

{% hint style="info" %}
Observação: Nesse caso, a chave representa a localidade para a qual os botões serão exibidos.
{% endhint %}

**Localidades suportadas**:\
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

**Exemplo de uma solicitação:**

```
buttons = {"default": [["postback", "Botão 1", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link do site", "https://mavibot.ai/"]], "en_EN": [["postback", "Botão", "callback_text 1"], ["postback", "Botão 2", "callback_text 2"], ["web_url", "Link", "https://mavibot.ai/"]]}
response = ig_set_persistent_menu('login', buttons)
```

Em caso de execução bem-sucedida, a função retorna:\
{"result":"success"}

Caso contrário, uma descrição do erro é retornada:

**"Error parse buttons data"** indica um erro no dicionário de botões.\
{"error":{"message":"(#100) param persistent\_menu\[0]\[call\_to\_actions] must be non-empty.","type":"OAuthException","code":100,"fbtrace\_id":"AJtVczu7TEJJxbMfnO"}}

### Como excluir um menu permanente

**response = ig\_delete\_persistent\_menu('login')**, onde login - nome da conta

<div data-with-frame="true"><figure><img src="/files/7f7480fe190ad8fb7e4b8bfb7e6cd2a83e02dee9" alt=""><figcaption></figcaption></figure></div>

Em caso de execução bem-sucedida, a função retorna:

{"result":"success"}

Caso contrário, uma descrição do erro é retornada:

**"Bot não encontrado"**


---

# 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/pt/chatbot/mensageiros/instagram/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.
