Сіз басқа қызметтермен API арқылы әрекеттесетін боттар жасай аласыз. Мысалы, боттар белгілі бір күнге қолжетімділікті тексеру немесе интернет-дүкеннен өнімді табу үшін сұраулар жібере алады.
Dadata мысалында үшінші тарап API-мен әрекеттесу
Мысал ретінде мекенжай ұсыну API-ін алайық: https://dadata.ru/api/suggest/address/ сілтеме басқа болады
Үшінші тарап API-інің құжаттамасын мұқият оқыңыз.
Назар аударыңыз! Үшінші тарап API-і сұраулар жіберілетін IP мекенжайларын қажет етеді: 158.160.49.208 – веб-сайт.
«Сұрау URL» өрісіне https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address енгізіңіз.
«Сұрау тақырыбы» өрісіне тақырыпты JSON форматында енгізіңіз: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}.
«JSON параметрлері» өрісіне сұраудың өзін енгізіңіз: {"query": "#{CurrencyType}"}.
Сұрау нәтижесін алу үшін «Сақталған мәндер» өрісін толтырыңыз.
Сұрау мысалы төмендегі суретте көрсетілген.
Айнымалылардан мәндерді қалай сақтау керек
Бірінші ретте толық түсінікті болмауы мүмкін — оны өзіңіз сынап көру керек.
Алдымен «Жауап» өрісіне #{custom_answer} енгізіңіз. (#{custom_answer} айнымалысы «Жауап URL» өрісінде көрсетілген серверден алынған жауапты қамтиды.)
Сұрау жіберу және жауап алу үшін сұрау блогын іске қосыңыз. Алынған жауапты талдап, одан қандай айнымалыларды алу керектігін конфигурациялау қажет. Ол үшін «Сақталған мәндер» өрісін пайдаланыңыз.
Жоғарыда сипатталған мысалды қарастырайық.
JSON-дегі деректерге қалай жүгіну керектігін түсінудің ең жақсы жолы — мысал. Біздің сұрауымыздың нәтижесінде #{custom_answer} ішінде алынған жауап келесідей:
{ "suggestions": [ { "value": "US Dollar", "unrestricted_value": "US Dollar", "data": { "code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States" } } ] }
«Сақталған мәндер» өрісіне МӘН -> АЙНЫМАЛЫ енгізіңіз:
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - массив кілті [{"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}]
suggestions|0 - массивтің бірінші элементінің кілті {"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}
suggestions|0|value - "US Dollar" мәнінің кілті
Осы JSON-дегі ең ұзын кілт:
suggestions|0|data|strcode - "USD" мәнінің кілті
Кілттер тік сызықпен (|) бөлінеді. Егер JSON элементі массив болса, оның элементтеріне 0-ден бастап индекс бойынша қол жеткізесіз және бұл да тік сызық арқылы жазылады.
Барлық ұялауды қайталау керек. Ыңғайлы болу үшін JSON-ді JSON көру қолданбасы арқылы визуализациялауға болады.
Ұялау деңгейі тік сызықпен бөлінеді. Яғни, мәнге жету үшін барлық кілттерді тік сызықпен бөліп, тізімдеу керек.
Егер JSON массиві болса, кілттің орнына нөлден бастап элементтің индексін пайдаланыңыз.
Айнымалыларымызды алу өрнектерін нүктелі үтірмен ; бөліңіз.
Әрбір өрнек жауаптағы деректерге жолдан және оны сақтау үшін айнымалы атауынан тұрады, -> арқылы бөлінген.
Іздеу сұрауы JSON-дегі қажетті мәнге жолды білдіреді.
Боттарға арналған API әзірлеу
Бот GET және POST сұрауларын қолдайды, бұл көптеген ашық API-лерде қолданылатын негізгі түрлер.
GET - сілтемені басқанда немесе браузерде URL ашқанда болатын сұрау. Бұл сұрауда параметрлер URL-де беріледі.
Параметрлерді беру синтаксисі: URL-ден кейін сұрақ белгісін ? қойыңыз, содан кейін әрбір параметрді амперсандпен & бөліңіз. Әрбір параметр атаудан, содан кейін = және оның мәнінен тұрады.
Параметрі бар URL мысалы:
Мұнда бір параметр q «good music» мәнімен берілген. %20 бос орынды білдіреді.
Құрастырушымен жұмыс істегенде, жай бос орынды пайдалануға болады — бот оны автоматты түрде ауыстырады.
POST - көбінесе веб-сайттағы форманы жіберу кезінде жіберілетін сұрау. Параметрлер сұрау денесінде жіберіледі. Оларды GET сұраулары сияқты URL-де де жіберуге болады, бірақ бұл сирек кездеседі. Денедегі параметрлер JSON форматында немесе кілт-мән жұптары ретінде болуы мүмкін. Формалар әдетте кілт-мән жұптарын жібереді, ал API-лер көбінесе JSON пайдаланады.
Сұрау тақырыбы - әрбір сұрауға тақырып қосуға болады. Көбінесе ол деректер форматын және қол жеткізу кілттерін көрсетеді. Әдетте бұл өріс бос қалдырылады, бірақ сирек жағдайларда API токенін немесе сұрау түрін қосу қажет, мысалы, «Content-Type»: «application/json».
JSON (JavaScript Object Notation, әдетте /ˈdʒeɪsən/ JAY-sən деп айтылады) — JavaScript негізіндегі мәтіндік деректер алмасу форматы. Көптеген басқа мәтіндік форматтар сияқты, JSON адамдарға оқуға оңай. Ботта API-лермен жұмыс істеу үшін бұл форматты түсіну керек, өйткені ол барлық өзара әрекеттесудің негізінде жатыр.
Жалғастырмас бұрын, келесі мақалаларды оқыңыз:
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
Сондай-ақ, осы веб-сайтта өзіңіздің JSON файлыңызды жасап көріңіз:
Тәжірибе
Сұраулар блоктар мен шарттар арқылы орындалуы мүмкін. Шартты сұраулар диалогтың сайттағы белгілі бір тармақты ұстана алатынын тексеруге арналған. Бұл жағдайда сұрау тармақ шарты бағаланған сайын жіберіледі. Ал блоктардағы сұраулар диалог сол күйге кіргенде ғана орындалады.
Сұрау жасамас бұрын, оның түрін таңдау керек:
POST-деректер және POST-JSON параметрлерді жіберу тәсілімен ерекшеленеді, жоғарыда айтылғандай (JSON форматында немесе кілт-мән жұптары ретінде). Егер JSON таңдасаңыз, параметрлерді тек сұрау денесінде жіберуге болады. JSON POST параметрлері үшін қосымша өріс пайда болады.
Маңызды! Параметрлер тек JSON форматында жазылуы керек, өйткені бот тек онымен жұмыс істейді. Сіз JSON жазумен айналысып үлгердіңіз.
Серверден жауапты талдап, айнымалыларға сақтауға болады.
Жауапты тек JSON форматында болса ғана талдауға болады.
Сақталған айнымалылар соңғы толтырылмаған формаға жазылады. Егер форма қызыл блок арқылы жіберілсе, айнымалылар жойылады. Сондықтан, егер бұл деректерді сақтау қажет болса, айнымалыларды сары блок арқылы CRM жүйесіне беріңіз.
Сондай-ақ, боттың айнымалыларға не жазғанын «Лидтер» бөлімінде көре аласыз.
Айнымалыларды жол ретінде емес беру
Әдепкі бойынша, айнымалы мәндері «#{}» форматындағы жолдар болуы керек, бірақ бұл жағдайда айнымалы жол ретінде жіберіледі. Айнымалыны сан ретінде беру үшін жоба параметрлерінде параметр форматын тексеруді өшіру керек:

Содан кейін айнымалы атауын жай пайдалануға болады, мысалы: {"key": #{variable_name}}, мұнда variable_name — айнымалының өзі, тырнақшасыз.
Параметрлерді орнатқаннан кейін форматты тексеруді қайта қосу ұсынылады.