# Facebook API

### Kalıcı menü nedir

Kalıcı menü, işletmenizin çalışma saatleri, mağaza konumları ve ürünler gibi ana işlevlerinden oluşan bir menü oluşturup göndermenize olanak tanır. Messenger’da bir kişinin şirketinizle yaptığı konuşma sırasında her zaman görünür olacaktır.

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

#### Desteklenen düğmeler:

Kalıcı menü, bir dizi düğmeden oluşur. Kalıcı menüde aşağıdaki düğme türleri desteklenir:

● URL düğmeleri (web\_url)\
● Geri çağırma düğmeleri (postback)

### Belirli bir sayfa için kalıcı menü nasıl eklenir

**response = fb\_set\_persistent\_menu("group\_id", buttons)**, burada:\
**group\_id** - Facebook bot kimliği, (içinde bulunabilir **"Channel"** MaviBot menüsü)\
**buttons** - düğmeleri içeren bir sözlük

**Düğme sözlüğünün nasıl yapılandırılacağına örnek**:\
buttons = {"default": \[\["postback", "Button 1", "callback\_text 1"], \["postback", "Button 2", "callback\_text 2"], \["web\_url", "Site link", "<https://mavibot.ai/"]]}>

**varsayılan** - menüde varsayılan olarak gösterilecek düğmeler dizisini tanımlayan gerekli bir anahtar, kullanıcının yerelleştirmesinden bağımsız olarak.\
Değer, bir düğme dizisi olmalıdır. Her düğme aşağıdaki biçimde ayrı bir dizi olarak tanımlanır:\
\["button\_type", "Button display text", "Callback text sent to the bot"]

**Düğme türleri ve açıklamaları:**\
\&#xNAN;*- geri çağırma düğmesi:*\
\["postback", "Düğme gösterim metni", "Bot'a gönderilen geri çağırma metni"]\
\&#xNAN;*- URL düğmesi:*\
\["web\_url", "Bağlantı gösterim metni", "<https://example.com>"]

### Menüyü kullanıcı yerel ayarına göre nasıl yapılandırılır

Belirli yerel ayarlara karşılık gelen düğme sözlüğüne ek anahtarlar ekleyerek farklı bölgeler için düğmeler ayarlayabilirsiniz.

Örneğin, İngilizce yerel ayarı için düğme eklemek üzere:

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" %}
Not: Bu durumda anahtar, düğmelerin görüntüleneceği yerel ayarı temsil eder.
{% endhint %}

**Desteklenen yerel ayarlar**:\
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

### Belirli bir kullanıcı için kalıcı menü nasıl eklenir

Bunu yapmak için, fb\_set\_persistent\_menu fonksiyonunun üçüncü parametresini 1 olarak ayarlayın, şöyle: response = fb\_set\_persistent\_menu('group\_id', buttons, 1)

Bu menü, fonksiyonun çağrıldığı kullanıcı için kullanılabilir olacaktır.

{% hint style="info" %} <mark style="color:kırmızı;">**NOT**</mark> . **Güncelleme** kullanıcı düzeyindeki bir **kalıcı menü** gerçek zamanlı olarak etkili olur.\
Ancak, sayfa düzeyindeki bir kalıcı menünün güncellenmesi 24 saate kadar sürebilir.

Kullanıcı düzeyi ayarlar <mark style="color:kırmızı;">sınırlıdır</mark> her 10 dakikada kullanıcı başına 10 çağrı oranıyla.
{% endhint %}

### Kalıcı menü dışındaki tüm iletişimi nasıl devre dışı bırakılır

Kalıcı menüyü, bir kullanıcının Messenger botunuzla etkileşime geçebileceği tek yol yapmak için, composer’ı devre dışı bırakmanız gerekir.

#### Bunu neden yapasınız?

Botunuz belirli bir amaç veya önceden tanımlanmış bir seçenek kümesi için tasarlandığında kullanışlıdır.

#### Bunu nasıl yaparsınız?

Composer’ı devre dışı bırakmak için, fonksiyonda dördüncü parametre olarak 1 geçin:

composer’ı sayfa düzeyinde (tüm kullanıcılar için) devre dışı bırakmak için:\
**response = fb\_set\_persistent\_menu('group\_id', buttons, '', 1)**\
fonksiyonun çağrıldığı kullanıcı için composer’ı devre dışı bırakmak için:\
**response = fb\_set\_persistent\_menu('group\_id', buttons, 1, 1)**\
burada:\
**group\_id** - Facebook bot kimliği, (içinde bulunabilir **"Channel"** MaviBot menüsü)\
**buttons** - düğmeleri içeren bir sözlük

Başarılı olursa, fonksiyon şunu döndürür:\
{"result":"success"}

Aksi takdirde, bir hata açıklaması döndürür.\
'Data yazımı için hata' - düğme sözlüğünde hata\
{"error":{"message":"(#100) param persistent\_menu\[0]\[call\_to\_actions] must be non-empty.","type":"OAuthException","code":100,"fbtrace\_id":"AJtVczu7TEJJxbMfnO"}}

#### ÖRNEKLER:

**Tüm kullanıcılar için menü ekleme:**

```
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)
```

**Tüm kullanıcılar için menü ekleme ve bu menüyü herkes için tek iletişim yöntemi haline getirme:**

```
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)
```

**Fonksiyonu çağıran bloğa giren kullanıcı için menü ekleme:**

```
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)
```

**Fonksiyonu çağıran bloğa giren kullanıcı için menü ekleme ve bu menüyü tüm kullanıcılar için tek iletişim yöntemi haline getirme:**

```
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)
```

### Kalıcı menüyü sayfa düzeyinde (tüm kullanıcılar için) silin:

**response = fb\_delete\_persistent\_menu('group\_id')**

Başarılı olursa, fonksiyon şunu döndürür:\
{"result":"success"}

Aksi takdirde, bir hata açıklaması döndürür.\
'Bot not found'

### Kalıcı menüyü kullanıcı düzeyinde silin:

**response = fb\_delete\_persistent\_menu('group\_id', 1)**

Başarılı olursa, fonksiyon şunu döndürür:\
{"result":"success"}

Aksi takdirde, bir hata açıklaması döndürür.

**"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/tr/chatbot/mesajlasma-uygulamalari/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.
