API ile diğer kaynaklarla etkileşime giren botlar oluşturabilirsiniz. Örneğin, botlar belirli bir tarih için randevu oluşturmanın mümkün olup olmadığını kontrol etme veya bir çevrimiçi mağazada ürün bulma yeteneği ile istekleri yerine getirebilir.
DaData örneğinde üçüncü taraf API nasıl işlenir
Örnek olarak https://dadata.ru/api/suggest/address adresinden API ipuçlarını alalım
Üçüncü taraf API'lerin dokümantasyonunu dikkatlice okuyun
Salebot'ta projenizi açın ve bir bloğun ayarlarında gelişmiş ayarları açın; orada istek türünü POST-json olarak değiştirmeniz gerekir.
“URL isteği” alanına aşağıdaki URL'yi girin: https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address
“İstek başlığı” alanına başlığı JSON formatında yazın:
{ "Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token }
“JSON parametreleri” kısmına isteğin kendisini koyun - { "query": "#{CurrencyType}" }
Sonuçları almak için “Saklanan değerler” sekmesini de doldurmanız gerekecektir.
İsteğin bir örneği aşağıdadır:

Değişkenlerden değerler nasıl kaydedilir
Kendiniz deneyene kadar herkes hemen anlamaz.
Başlamak için yanıt alanına #{custom_answer} yazın. (#{custom_answer} değişkeni, “Sunucudan yanıt için URL” alanında belirtilen sunucudan alınan yanıtı tutar)
İsteği göndermek ve ona bir yanıt almak için bloğu başlatın. Yanıtı analiz etmeniz ve içindeki değişkenlere erişimi ayarlamanız gerekir. Bunun için “Saklanan değerler” sekmesiyle çalışmanız gerekir.
Süreci daha iyi anlamak için bir örneğe bakalım.
#{custom_answer} isteğimizin sonucunda aşağıdaki formatta bir yanıt geldi:
{"suggestions": [{"value": "İngiliz sterlini", "unrestricted_value": "İngiliz sterlini", "data": {"code": "826", "strcode": "GBP", "name": "İngiliz sterlini", "country": "Birleşik Krallık"}}]}
Şimdi “Saklanan değerler” alanına DEĞER->DEĞİŞKEN'imizi yazalım
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - dizinin anahtarı [{"value": "İngiliz sterlini", "unrestricted_value": "İngiliz sterlini", "data": {"code": "826", "strcode": "GBP", "name": "İngiliz sterlini", "country": "Birleşik Krallık"}}]
suggestions|0 - dizideki ilk öğenin anahtarı {"value": "İngiliz sterlini", "unrestricted_value": "İngiliz sterlini", "data": {"code": "826", "strcode": "GBP", "name": "İngiliz sterlini", "country": "Birleşik Krallık"}}
suggestions|0|value - “İngiliz sterlini” değerinin anahtarı
Bu JSON'daki en uzun anahtar:
suggestions|0|data|strcode - “GBP” değerinin anahtarı
Anahtarlar dikey çizgi (|) ile ayrılır. JSON'da bir dizi varsa, öğesine erişim 0 sayısından başlayarak numaralandırılır ve yine dikey çizgi ile yazılır.
Tüm iç içe geçmeyi tekrarlamak gerekir. Kolaylık olması için JSON'u bir JSON-viewer uygulamasında görselleştirebilirsiniz.
İç içe geçme seviyeleri dikey çizgilerle ayrılır. Bu nedenle değere ulaşmak için tüm anahtarları çizgiyle ayırarak listelemeniz gerekir.
JSON'da bir dizi varsa, anahtar yerine 0'dan başlayarak öğenin numarasını belirtmeniz gerekir.
Değişken elde etme ifadelerini noktalı virgül (;) ile ayırın. İfadeler, yanıttaki verilere bağlantı ve kaydedilecek değişkenin adından oluşur ve bunlar -> (tire + açılı parantez) sembolleriyle ayrılır.
Arama sorgusu, bir bakıma JSON'da gerekli değere giden yoldur.
Botlar için API geliştirme
Bir API geliştirmek için, üzerinde barındırılacağı bir hostinge ihtiyacınız olacak. Eğer bir hostinginiz yoksa veya programlama konusunda uzman değilseniz, bizimle iletişime geçebilirsiniz ve botunuz için API'yi geliştirip kendi hostingimizde barındırabiliriz. Hostingin kendisi ücretsizdir, sadece geliştirme için ödeme yaparsınız.
Ama şimdilik biraz teori.
Bot, GET ve POST isteklerini destekler, bunlar çoğu genel API'de kullanılan ana türlerdir.
GET, bağlantıya tıklandığında veya tarayıcıda bağlantı açıldığında gerçekleşen bir istektir. Bu tür isteklerde parametreler URL-isteklerine aktarılır.
Aktarılan parametrelerin sözdizimi: url'den sonra bir soru işareti (?) gelir, ardından her parametre ve işareti (&) ile ayrılır. Bir parametre, adından ve eşittir işaretinden (=) sonra gelen değerinden oluşur. Parametreli bir URL örneği:

Burada “search_query” adında bir parametrenin paylaşıldığını ve değerinin “queen live aid” olduğunu görebilirsiniz. Buradaki ‘+’ kelimeler arasındaki boşluktur; düzenleme yazılımıyla çalışırken boşlukları bırakabilirsiniz – bot bunu kendisi değiştirecektir.
POST, en sık bir web sitesinde form doldurulurken gönderilen bir istek türüdür. İstek, parametreleri gövdede aktarır; elbette GET ile aynı şekilde paylaşılabilirler ancak bu nadiren yapılır. Gövdedeki parametre JSON formatında veya anahtar-değer olabilir. Anahtar-değer olarak parametreler formları paylaşır, JSON formatı API'ler için en sık kullanılan formattır.
İstek başlığı. Her isteğe bir başlık/title eklenebilir. Paylaşılan verilerin formatı ve erişim anahtarları çoğunlukla buraya yazılır. Genellikle bu sekmeyi boş bırakırız, ancak nadiren API Token veya istek türü “Content-type”: “application/json” koymak gerekir.
JSON - (JavaScript Object Notation), nitelik-değer çiftleri ve dizilerden oluşan veri nesnelerini depolamak ve iletmek için insan tarafından okunabilir metin kullanan açık bir standart dosya formatı ve veri değişim formatıdır. Botlarda API ile çalışmak için bu formatı bilmeniz gerekir, her şey buna dayanır.
Devam etmeden önce aşağıdaki makaleleri okuyun:
https://www.json.org/json-en.html
https://developer.mozilla.org/en-US/docs/learn/javascript/objects/json
Ayrıca bu sitede kendi JSON dosyanızı oluşturmayı deneyin:
Pratik
Bloklar ve koşullar istekleri yerine getirebilir. Koşul istekleri, sitede diyaloğun belirli bir yolu izleyip izleyemeyeceğini anlamak için oluşturulur. Bu durumda istek, yolun koşulu her kontrol edildiğinde gerçekleşir. Blok istekleri ise tam tersine, yalnızca bloğa geçiş yapıldığında çalıştırılır.
Bir istek oluşturmadan önce türünü seçmeniz gerekir:

POST-data ve POST-json, yukarıda belirtildiği gibi parametre aktarma yöntemiyle (JSON formatı veya anahtar-değer olarak) ayrılır. JSON'u seçerseniz, parametreler yalnızca istekte aktarılabilir. Post için ek bir alan açılır: JSON POST-parametreleri. Önemli! Parametreler yalnızca JSON formatında yazılmalıdır, bot yalnızca bu şekilde çalışır.
Sunucudan gelen yanıt ayrıştırılabilir ve değişkenlere kaydedilebilir.
Yanıtı yalnızca JSON formatındaysa çözümleyebilirsiniz.
Kaydedilen değişkenler, doldurulmamış son gönderime yazılır; gönderim kırmızı bir blok aracılığıyla aktarılırsa, değişkenler geçersiz kılınır. Bu nedenle verileri kaydetmeniz gerekiyorsa, değişkenleri sarı blok aracılığıyla aktarmanız gerekir.
Bu arada, botun değişkenlere ne yazdığını Leads bölümünde görebilirsiniz:

Veri aktarımı satır olarak değil
Varsayılan olarak değişken değeri #{} formatında gelir ancak daha sonra bir satır olarak gelir. Değişkenin bir sayı olarak aktarılmasını sağlamak için post-json parametrelerinin formatını kontrol etmeyi kapatmanız gerekir.

Ardından değişkenin adından bahsedebilirsiniz, örneğin {"key": #{variable_name}}, variable_name değişkendir, yani parantez kullanmadan.
Parametreleri ayarladıktan sonra kontrolü tekrar açmanız önerilir.