Üçüncü taraf API’lerle entegrasyon

API'ler aracılığıyla diğer hizmetlerle etkileşime giren botlar oluşturabilirsiniz. Örneğin, botlar belirli bir tarih için uygunluğu kontrol etmek veya çevrimiçi bir mağazada bir ürün bulmak için istek gönderebilir.

Dadata'yı örnek olarak kullanarak üçüncü taraf API'lerle nasıl etkileşime geçilir

Bir örnek olarak adres öneri API'sini ele alalım: https://dadata.ru/api/suggest/address/ link farklı olacak

Üçüncü taraf API'lerin belgelerini dikkatlice okuyun.

"Request URL" alanına şunu girin https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address.

içinde "Request header" alanına, başlığı JSON formatında girin: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}.

içinde "JSON parameters" alanına, isteğin kendisini girin: {"query": "#{CurrencyType}"}.

İstek sonucunu almak için şunu doldurun: "Saved values" alanına yapıştırın.

İsteğin bir örneği aşağıdaki görselde gösterilmiştir.

Değerler değişkenlerden nasıl kaydedilir

İlk başta tamamen net olmayabilir — bunu gerçekten kendiniz denemeniz gerekir.

Önce "Answer" alanına #{custom_answer} girin. (#{custom_answer} değişkeni, "Response URL" alanında belirtilen sunucudan alınan yanıtı içerir.)

İsteği göndermek ve yanıtı almak için istek bloğunu çalıştırın. Alınan yanıtın analiz edilmesi gerekir ve ondan hangi değişkenlerin çıkarılacağını ayarlamanız gerekir. Bunun için "Saved Values" alanını kullanın.

Yukarıda açıklanan örneği inceleyelim.

JSON'da verilere nasıl erişileceğini anlamanın en iyi yolu örnektir. İsteğimizin sonucu olarak, #{custom_answer} içinde alınan yanıt şu şekilde görünür:

{ "suggestions": [ { "value": "US Dollar", "unrestricted_value": "US Dollar", "data": { "code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States" } } ] }

"Saved values" alanına VALUE -> VARIABLE girin:

suggestions|0|value->CurrencyType; suggestions|0|data|code->CurrencyDigCode; suggestions|0|data|strcode->CurrencyStrCode; suggestions|0|data|country->CurrencyCountry

suggestions - dizi için anahtar [{"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}]

suggestions|0 - dizinin ilk öğesi için anahtar {"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}

suggestions|0|value - "US Dollar" değeri için anahtar

Bu JSON’daki en uzun anahtar:

suggestions|0|data|strcode - "USD" değeri için anahtar

Tüm iç içeliği tekrarlamanız gerekir. Kolaylık olması için JSON'u bir JSON görüntüleyici uygulamasıyla görselleştirebilirsiniz.

İç içe geçme seviyesi dikey çizgi ile ayrılır. Yani, değere ulaşmak için tüm anahtarları listeleyip bunları dikey çizgiyle ayırmanız gerekir.

JSON bir dizi içeriyorsa, anahtar yerine öğenin indeksini kullanın; sıfırdan başlayın.

Değişkenlerimizi elde etmeye yönelik ifadeleri noktalı virgül ; ile ayırın.

Her ifade, yanıt içindeki verilere giden yol ve onu kaydedeceğiniz değişkenin adından oluşur; bunlar -> ile ayrılır.

Arama sorgusu, JSON içinde gerekli değere giden yolu temsil eder.

Botlar için API geliştirme

Bot, çoğu genel API'de kullanılan ana istek türleri olan GET ve POST isteklerini destekler.

GET bir bağlantıya tıkladığınızda veya tarayıcıda bir URL açtığınızda gerçekleşen bir istektir. Bu istekteki parametreler URL içinde iletilir.

Parametreleri iletme sözdizimi: URL'den sonra bir soru işareti ? koyun, ardından her parametreyi bir ve işareti & ile ayırın. Her parametre, ardından = ve değeri gelen bir addan oluşur.

Parametreli bir URL örneği:

Şekil 3

Burada, tek bir q parametresi "good music" değeriyle iletilir. %20 bir boşluğu temsil eder.

Oluşturucu ile çalışırken sadece bir boşluk kullanabilirsiniz — bot bunu otomatik olarak değiştirecektir.

POST bir formu bir web sitesinde gönderirken çoğunlukla yollanan bir istektir. Parametreler isteğin gövdesinde gönderilir. GET isteklerindeki gibi URL içinde de gönderilebilirler, ancak bu yaygın değildir. Gövdedeki parametreler JSON formatında veya anahtar-değer çiftleri olarak olabilir. Formlar genellikle anahtar-değer çiftleri gönderirken, API'ler çoğunlukla JSON kullanır.

İstek başlığı - her isteğe bir başlık ekleyebilirsiniz. Çoğu zaman veri formatını ve erişim anahtarlarını belirtir. Genellikle bu alan boş bırakılır, ancak nadir durumlarda bir API belirteci veya bir istek türü eklemeniz gerekir; örneğin, "Content-Type": "application/json".

JSON (JavaScript Object Notation, genellikle /ˈdʒeɪsən/ JAY-sən olarak telaffuz edilir) JavaScript tabanlı, metin tabanlı bir veri alışverişi formatıdır. Diğer birçok metin formatı gibi JSON da insanlar tarafından kolayca okunabilir. Botta API'lerle çalışmak için bu formatı anlamanız gerekir, çünkü tüm etkileşimlerin temelini o oluşturur.

Devam etmeden önce aşağıdaki makaleleri okuyun:

https://www.json.org/json-ru.html https://developer.mozilla.org/ru/docs/Learn/JavaScript/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B/JSON

Ayrıca, bu web sitesinde kendi JSON dosyanızı oluşturmayı deneyin:

https://jsoneditoronline.org/

Pratik

İstekler bloklar ve koşullar tarafından yürütülebilir. Koşullu istekler, bir diyaloğun sitede belirli bir yolu takip edip edemeyeceğini kontrol etmek için tasarlanmıştır. Bu durumda, isteği, dal koşulu değerlendirildiğinde her seferinde gönderilir. Öte yandan, bloklardaki istekler yalnızca diyalog o duruma girdiğinde yürütülür.

Bir istek oluşturmadan önce türünü seçmeniz gerekir:

POST-data ve POST-JSON, parametrelerin nasıl gönderildiği açısından farklıdır; daha önce de belirtildiği gibi (ya JSON formatında ya da anahtar-değer çiftleri olarak). JSON seçerseniz, parametreler yalnızca isteğin gövdesinde gönderilebilir. JSON POST parametreleri için ek bir alan görünecektir.

Önemli! Parametreler yalnızca JSON formatında yazılmalıdır, çünkü bot yalnızca onunla çalışır. JSON yazmayı zaten pratik ettiniz.

Sunucudan gelen yanıt ayrıştırılabilir ve değişkenlere kaydedilebilir.

Bir yanıtı yalnızca JSON formatındaysa ayrıştırabilirsiniz.

Kaydedilen değişkenler son doldurulmayan formda kaydedilir. Form kırmızı bir blok üzerinden gönderilirse, değişkenler atılır. Bu nedenle, bu veriyi kaydetmeniz gerekiyorsa, değişkenleri sarı bir blok aracılığıyla CRM sistemine iletin.

Botun değişkenlere kaydettiği şeyleri "Leads" bölümünde de görebilirsiniz.

Şek. 8

Değişkenleri string olarak değil iletme

Varsayılan olarak, değişken değerleri "#{}" biçiminde string olmalıdır, ancak bu durumda değişken string olarak gönderilir. Bir değişkeni sayı olarak iletmek için proje ayarlarında parametre biçimi kontrolünü devre dışı bırakmanız gerekir:

Sonra değişken adını doğrudan kullanabilirsiniz, örneğin: {"key": #{variable_name}}burada variable_name değişkenin kendisidir — etrafında tırnak işareti olmadan.

Son güncelleme