# Hesap makinesinde işlevler (API)

{% hint style="warning" %}
API işlevleri yalnızca "Business" ve "MaviBot AI" planlarında kullanılabilir.
{% endhint %}

## API MaviBot

<mark style="color:kırmızı;">**LEJAND:**</mark>\ <mark style="color:kırmızı;">**!**</mark> -Gerekli parametreler

### Geri çağrının nasıl gönderileceği

#### **callback()**

{% hint style="danger" %}
Geri çağrı yalnızca BAŞKA bir istemciye gönderilebilir.

Geri çağrıyı KENDİNİZE gönderemezsiniz!
{% endhint %}

<details>

<summary>Açıklama</summary>

**callback(client\_id, callback\_message)**

Parametreler:

<mark style="color:kırmızı;">**!**</mark>**&#x20;client\_id** - istemci tanımlayıcısı

<mark style="color:kırmızı;">**!**</mark>**&#x20;callback\_message** - geri çağrı mesajı metni

</details>

<details>

<summary>Örnek</summary>

Geri çağrı, botun belirli bir işlemi tetiklemek için bir komut olarak tanıdığı özel bir sistem mesajıdır. Bu mesaj kullanıcıya görünmez ve yalnızca dahili işlem için istemcinin profilinde kaydedilir.

client\_id=73704021 olan istemciye geri çağrı gönderelim

<div data-with-frame="true"><figure><img src="/files/5772645822074eb1c5e7558abd7635d64dd86c92" alt="" width="563"><figcaption></figcaption></figure></div>

Sonra, bu geri çağrıya verilen yanıtı koşullu blokta ayarlıyoruz.

</details>

<details>

<summary>Kopyalanacak kod örneği</summary>

```
callback('73704021', 'callback TEST123')

callback(client_id, 'callback TEST123')
```

</details>

### Telegram'da geri çağrı nasıl gönderilir

#### **tg\_callback()**

<details>

<summary>Açıklama</summary>

**tg\_callback(platform\_id , callback\_message,group\_id, business\_connection\_id)**

Parametreler:

<mark style="color:kırmızı;">**!**</mark>**&#x20;platform\_id** -  Telegram istemci tanımlayıcısı

<mark style="color:kırmızı;">**!**</mark>**&#x20;callback\_message** - geri çağrı mesajı metni

&#x20;**group\_id** -  Telegram bot tanımlayıcısı

**tg\_business -** işletme müşterileriyle çalışmak için "1" değeri geçirilir.

</details>

<details>

<summary>Örnek</summary>

Bu, gerekli parametrelerle bir örnektir:

<div data-with-frame="true"><figure><img src="/files/618d044fc728027d5655aa12fe2ffdd8c31c0edc" alt="" width="563"><figcaption></figcaption></figure></div>

Bu, isteğe bağlı parametrelerle bir örnektir

<div data-with-frame="true"><figure><img src="/files/1f9bed62848c5191a20f02be7a9f2e9197bbb3fc" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Kopyalanacak kod örneği</summary>

```
tg_callback('73704021', 'callback TEST123')

tg_callback(platform_id, 'callback TEST123', None, 1)
```

</details>

### Bir geri çağrı düğmesine yanıt olarak etiketli bir bot yönlendirmesi nasıl eklenir?

<details>

<summary>Açıklama</summary>

**tg\_callback\_url\_open(callback\_query\_id, url)**

Parametreler: \ <mark style="color:kırmızı;">**!**</mark>**&#x20;callback\_query\_id** - bu kimlik, düğmeye basan kişiyi tanımlamanıza ve ona Alert -bildirimini göstermenize olanak tanır,\ <mark style="color:kırmızı;">**!**</mark>**&#x20;url** - URL- botu ve parametreyi belirten (şöyle görünür: t.me/your\_bot?start=XXXX, your\_bot yerine - bot adı)

</details>

### **İstemciye mesaj nasıl gönderilir**

**message() | platform\_message() | whatsapp\_message()**

{% hint style="info" %}
Satır sonları içeren metni bir değişkende saklamak için, değeri şu şekilde ayarlayın:

`text = "Birinci satır metni" + "\n" + "İkinci satır metni" + "\n" +"Üçüncü satır metni"`
{% endhint %}

<details>

<summary>Açıklama</summary>

**message(client\_id, text, message\_id, timeout)**

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;client\_id** - istemci tanımlayıcısı\ <mark style="color:kırmızı;">**!**</mark>**&#x20;text** - mesaj metni\
**message\_id** - blok kimliği. Metin alanını boş bırakırsanız (") ve bu parametreyi doldurursanız, belirtilen bloktaki metin istemciye gönderilecektir.

*Not: message işlevine message\_id parametresini geçirirseniz, blok yine de tamamen yürütülür ve client\_id parametresinde belirtilen istemci, message\_id içinde geçtiğiniz bloğa taşınır.*

\
**timeout** - mesaj gecikmesi veya planlanan gönderim zamanı. Mesaj gönderimini geciktirmek için timeout parametresini kullanabilirsiniz:\
a) Saniye cinsinden gecikme (3600 saniyeye kadar). Değer 3600'ü aşarsa, mesaj bir saat içinde gönderilir. Değer negatifse, mesaj hemen gönderilir. Örnek: timeout = 50                                                                                                                 &#x20;

b) dd.mm.yyyy hh:mm biçiminde belirli bir tarih ve saat, örnek: timeout = '03.04.2022 15:00' . Geçmiş bir tarih belirtilirse, mesaj hemen gönderilir.

**platform\_message(platform\_id, text, client\_type,  message\_id, timeout,group\_id)**

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;platform\_id** -  mesajlaşma uygulamasındaki istemci tanımlayıcısı\ <mark style="color:kırmızı;">**!**</mark>**&#x20;text** - mesaj metni\
**client\_type -** mesajlaşma uygulaması türü, isteğe bağlı parametre. Belirtilmezse, istemci botun mesajı gönderdiği aynı mesajlaşma uygulamasında aranır. Belirtilirse, istemci belirtilen mesajlaşma uygulamasının veritabanı arasında bulunur. Mesajlaşma uygulaması türlerini bulabilirsiniz [burada.](/doc/tr/chatbot/functions/degiskenler.md#how-to-work-with-variables)\
**message\_id** - blok kimliği. Belirtilirse, istemci metin parametresindeki değeri değil, belirtilen bloktaki mesajı alır.\
**timeout** - gönderim zamanı veya gecikme. Aynı adlı message() işlevinin parametresine benzer.\
**group\_id** - bot tanımlayıcısı

**whatsapp\_message(phone, text, message\_id)**

Parametreler:\ <mark style="color:kırmızı;">**!**</mark>**&#x20;phone**- Whatsapp'ın kayıtlı olduğu müşterinin telefon numarası\ <mark style="color:kırmızı;">**!**</mark>**&#x20;text** - mesaj metni\
**message\_id** - blok kimliğidir. Metin alanı boş ('') bırakılır ve bu parametre ayarlanırsa, istemci belirtilen bloktaki mesaj içeriğini alır.

{% hint style="info" %}
Whatsapp botunun projeye bağlanması gerekir.
{% endhint %}

</details>

<details>

<summary>Örnek</summary>

client\_id ile mesaj göndermenin basit bir örneği:

<div data-with-frame="true"><figure><img src="/files/db9d626525205d36ab420267913854243ce625b1" alt="" width="563"><figcaption><p>client_id ile mesaj gönderme</p></figcaption></figure></div>

client\_id ile mesaj göndermek için farklı seçenekler:

<div data-with-frame="true"><figure><img src="/files/8deda4c37c23e25870887d054d30baad470919f2" alt="" width="563"><figcaption><p>Mesaj göndermek için farklı seçenekler </p></figcaption></figure></div>

platform\_message() üzerinden mesaj gönderme örneği:

<div data-with-frame="true"><figure><img src="/files/99807aa943ad7b5686327bb30865801f45b3c62b" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Kopyalanacak kod örneği</summary>

```
/* client_id ile mesaj gönderme */
message(73704021, 'Müşteri için mesaj metni')
/* client_id ile 30 saniye gecikmeli mesaj gönderme */
message(73704021, 'Merhaba! Yazdığınız için teşekkürler..','',30)
/* 03.04.2022 tarihinde saat 15:00'te client_id ile 3190 numaralı bloktan mesaj gönderme */
message(73704021, '',3190, '03.04.2022 3pm')

/* Whatsapp'ta mesaj gönderme */
whatsapp_message('79999999999', 'Müşteri için mesaj metni')
```

</details>

### platform\_id değeri ile client\_id alma

get\_client\_id\_by\_platform\_i&#x64;**()**

<details>

<summary>Açıklama</summary>

**get\_client\_id\_by\_platform\_id(client\_type, platform\_id , group)**&#x20;

Fonksiyon çalıştırıldıktan sonra, belirtilen koşullara uyan bir istemci bulunursa client\_id döndürülür; aksi halde None döndürülür.

<mark style="color:kırmızı;">**!**</mark> **client\_type** - mesajlaşma uygulaması. client\_type değeri için şuraya bakın [bu makale](/doc/tr/chatbot/functions/degiskenler.md).&#x20;

<mark style="color:kırmızı;">**!**</mark> **platform\_id** - belirtilen mesajlaşma uygulamasındaki istemci kimliği.

**group**  - birden fazla mesajlaşma botu bağlıysa gerekli bir parametredir.

{% hint style="warning" %}
Projeye aynı türden birden fazla mesajlaşma uygulaması bağlanmışsa, arama bu türün bağlı tüm mesajlaşma uygulamaları üzerinden yapılır.

Bu durumda, group parametresini geçirmenizi öneririz.
{% endhint %}

</details>

### get istekleri için işlevler:  requests\_get(url, answer\_type, headers, params, auth, proxy)&#x20;

<details>

<summary>Açıklama</summary>

<mark style="color:kırmızı;">**!**</mark>**&#x20;url** - isteğin yapıldığı bağlantı

**answer\_type**  – sunucu yanıtından neyin döndürülmesi gerektiğini belirleyen isteğe bağlı parametre: ('status' – yanıt durum kodunu döndürür; 'json' – yanıtın json gövdesini döndürür; 'text' – yanıtın ham metnini döndürür; diğer herhangi bir değer (varsayılan dahil) yanıtı şu formatta döndürür: '{"status": status\_code, "data": data}')

**headers** - istek başlıklarını geçirmek için isteğe bağlı parametre,&#x20;

**params** - is *get* istek parametreleri (doğrudan URL'ye de eklenebilir),

**auth** - API kimlik doğrulaması için yararlı isteğe bağlı parametre. Herhangi bir isteğe bağlı parametre kullanmak istemiyorsanız ancak bir sonrakine ihtiyaç duyuyorsanız, buraya 0 girin.

**proxy** - isteğe bağlı parametre; tek bir değer kabul eder: "de", isteği Avrupa IP adresi üzerinden yönlendirir.

</details>

### post istekleri için işlevler

<details>

<summary>Açıklama</summary>

requests\_post(url, answer\_type, headers, data, json\_data, auth, proxy)

<mark style="color:kırmızı;">**!**</mark>**&#x20;url** - isteğin yapıldığı bağlantı,

**answer\_type** - sunucu yanıtından neyin döndürülmesi gerektiğini belirleyen isteğe bağlı parametre: ('status' – yanıt durum kodunu döndürür; 'json' – yanıtın json gövdesini döndürür; 'text' – yanıtın ham metnini döndürür; diğer herhangi bir değer (varsayılan dahil) yanıtı şu formatta döndürür: '{"status": status\_code, "data": data}')

**headers** - istek başlıklarını geçirmek için isteğe bağlı parametre

**data** - isteğe bağlı parametre; API json ile çalışmadığında istek gövdesini temsil eder.

&#x20;**json\_data** - isteğe bağlı parametre; ayrıca istek gövdesini temsil eder. Bu parametrelerden yalnızca birini aynı anda kullanmalısınız.

{% hint style="warning" %}
Lütfen dikkat: belirli başlık yapılandırmaları, isteğin belirli bir gövde türüyle gönderilmesini engelleyebilir.
{% endhint %}

**auth** - API kimlik doğrulaması için yararlı isteğe bağlı parametre. Herhangi bir isteğe bağlı parametre kullanmak istemiyorsanız ancak bir sonrakine ihtiyaç duyuyorsanız, buraya 0 girin

**proxy** - isteğe bağlı parametre; tek bir değer kabul eder: "de", isteği Avrupa IP adresi üzerinden yönlendirir.

</details>

### put istekleri için işlevler

<details>

<summary>Açıklama</summary>

requests\_put(url, answer\_type, headers, data, auth, proxy)

<mark style="color:kırmızı;">**!**</mark>**&#x20;url** - isteğin yapıldığı bağlantı

**answer\_type** - sunucu yanıtından neyin döndürülmesi gerektiğini belirleyen isteğe bağlı parametre: ('status' – yanıt durum kodunu döndürür; 'json' – yanıtın json gövdesini döndürür; 'text' – yanıtın ham metnini döndürür; diğer herhangi bir değer (varsayılan dahil) yanıtı şu formatta döndürür: '{"status": status\_code, "data": data}')

**headers** - istek başlıklarını geçirmek için isteğe bağlı parametre

**data** - isteğe bağlı parametre; API json ile çalışmadığında istek gövdesini temsil eder.

**auth** - API kimlik doğrulaması için yararlı isteğe bağlı parametre. Herhangi bir isteğe bağlı parametre kullanmak istemiyorsanız ancak bir sonrakine ihtiyaç duyuyorsanız, buraya 0 girin

proxy - isteğe bağlı parametre; tek bir değer kabul eder: "de", isteği Avrupa IP adresi üzerinden yönlendirir.

**data\_is\_json** isteğe bağlı bir parametredir.\
Ayarlanırsa, geçirilen veri `data` JSON formatında gönderilecektir.\
Etkinleştirmek için şunu geçin `'1'`.

</details>

### patch istekleri için işlevler

requests\_patch(url, answer\_type, headers, data, auth, proxy)

<details>

<summary>Açıklama</summary>

<mark style="color:kırmızı;">**!**</mark>**&#x20;url** - isteğin yapıldığı bağlantı

**answer\_type** - sunucu yanıtından neyin döndürülmesi gerektiğini belirleyen isteğe bağlı parametre: ('status' – yanıt durum kodunu döndürür; 'json' – yanıtın json gövdesini döndürür; 'text' – yanıtın ham metnini döndürür; diğer herhangi bir değer (varsayılan dahil) yanıtı şu formatta döndürür: '{"status": status\_code, "data": data}')

**headers** - istek başlıklarını geçirmek için isteğe bağlı parametre

**data** - isteğe bağlı parametre; API json ile çalışmadığında istek gövdesini temsil eder.

**auth** - API kimlik doğrulaması için yararlı isteğe bağlı parametre. Herhangi bir isteğe bağlı parametre kullanmak istemiyorsanız ancak bir sonrakine ihtiyaç duyuyorsanız, buraya 0 girin

proxy - isteğe bağlı parametre; tek bir değer kabul eder: "de", isteği Avrupa IP adresi üzerinden yönlendirir.

</details>

### delete istekleri için işlevler

requests\_delete(url, answer\_type, headers, data, json\_data, auth, proxy)

<details>

<summary>Açıklama</summary>

<mark style="color:kırmızı;">**!**</mark>**&#x20;url** - isteğin yapıldığı bağlantı

**answer\_type** - sunucu yanıtından neyin döndürülmesi gerektiğini belirleyen isteğe bağlı parametre: ('status' – yanıt durum kodunu döndürür; 'json' – yanıtın json gövdesini döndürür; 'text' – yanıtın ham metnini döndürür; diğer herhangi bir değer (varsayılan dahil) yanıtı şu formatta döndürür: '{"status": status\_code, "data": data}')

**headers** - istek başlıklarını geçirmek için isteğe bağlı parametre

data - API json ile çalışmadığında istek gövdesini temsil eden isteğe bağlı parametre.

json\_data - isteğe bağlıdır ve istek gövdesi olarak da kullanılabilir. Ancak, aynı anda yalnızca bir seçenek kullanılmalıdır

auth - API kimlik doğrulaması için yararlı isteğe bağlı parametre. Herhangi bir isteğe bağlı parametre kullanmak istemiyorsanız ancak bir sonrakine ihtiyaç duyuyorsanız, buraya 0 girin

proxy - isteğe bağlı parametre; tek bir değer kabul eder: "de", isteği Avrupa IP adresi üzerinden yönlendirir.

</details>

### Kimliğine göre blok adını alma işlevi

<details>

<summary>Açıklama</summary>

get\_block\_name\_by\_id(block\_id)

<mark style="color:kırmızı;">**!**</mark>**&#x20;block\_id** — blok tanımlayıcısı (id)&#x20;

</details>


---

# 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/functions/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.
