Сіз API арқылы басқа ресурстармен әрекеттесетін боттар жасай аласыз. Мысалы, боттар белгілі бір күнге жазба жасау мүмкіндігін тексеру немесе интернет-дүкеннен өнімді табу мүмкіндігімен сұрауларды орындай алады.

DaData мысалында үшінші тарап API-мен қалай жұмыс істеу керек

Мысал ретінде https://dadata.ru/api/suggest/address сайтынан API кеңестерін алайық

Үшінші тарап API құжаттамасын мұқият оқып шығыңыз

Mavibot жобаңызды ашып, блок параметрлеріндегі кеңейтілген параметрлерге өтіңіз; онда сұрау түрін POST-json деп өзгертуіңіз керек.

URL сұрау” өрісіне келесі 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” өрісінде аталған серверден алынған жауапты сақтайды)

Сұрауды жіберу және оған жауап алу үшін блокты іске қосыңыз. Жауапты талдап, ондағы айнымалыларға қол жеткізуді орнату қажет. Ол үшін “Сақталған мәндер” қойыншасымен жұмыс істеу керек.

Процесті жақсырақ түсіну үшін мысалды қарастырайық.

Сұрауымыздың нәтижесінде #{custom_answer} келесі пішімдегі жауап келді:

{"suggestions": [{"value": "British pound", "unrestricted_value": "British pound", "data": {"code": "826", "strcode": "GBP", "name": "British pound", "country": "The UK"}}]}

Енді “Сақталған мәндер” өрісіне МӘН->АЙНЫМАЛЫ деп жазайық

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

suggestions - массивтің кілті [{"value": "British pound", "unrestricted_value": "British pound", "data": {"code": "826", "strcode": "GBP", "name": "British pound", "country": "The UK"}}]

suggestions|0 - массивтегі бірінші элементтің кілті {"value": "British pound", "unrestricted_value": "British pound", "data": {"code": "826", "strcode": "GBP", "name": "British pound", "country": "The UK"}}

suggestions|0|value - “British pound” мәніне кілт

Осы JSON-дегі ең ұзын кілт:

suggestions|0|data|strcode - “GBP” мәніне кілт

Кілттер тік сызықпен (|) бөлінеді. Егер JSON-де массив болса, онда оның элементіне қол жеткізу 0 санынан бастап нөмірленеді және де тік сызықпен жазылады.

Бүкіл ұялауды қайталау қажет. Ыңғайлы болу үшін JSON-ді JSON-viewer қосымшасында визуализациялауға болады.

Ұялау деңгейлері тік сызықтармен бөлінген. Сондықтан мәнге жету үшін барлық кілттерді сызықпен бөліп тізу керек.

Егер JSON-де массив болса, онда кілттің орнына 0-ден бастап элементтің нөмірін көрсету керек.

Айнымалыларды алу сөз тіркестерін нүктелі үтір белгісімен (;) бөліңіз. Сөз тіркестері жауаптағы деректерге сілтемеден және оны сақтауға арналған айнымалы атауынан тұрады, олар -> (сызықша + бұрыштық жақша) белгілерімен бөлінген.

Іздеу сұрауы, белгілі бір мағынада, JSON-дегі қажетті мәнге жол болып табылады.

Боттарға арналған API әзірлеу

API әзірлеу үшін сізге ол орналасатын хостинг қажет. Егер сізде хостинг болмаса немесе сіз бағдарламалауда шебер болмасаңыз, бізге хабарласып, біз сіздің ботыңызға API әзірлеп, оны өз хостингімізде орналастыра аламыз. Хостингтің өзі тегін, сіз тек әзірлеу үшін ғана төлейсіз.

Әзірге аздап теория.

Бот GET және POST сұрауларын қолдайды, бұлар көптеген жалпыға қолжетімді API-де қолданылатын негізгі түрлер.

GET - сілтемені басу немесе браузерде сілтемені ашу кезінде орындалатын сұрау. Мұндай сұраудағы параметрлер URL-сұрауларға беріледі.

Берілетін параметрлердің синтаксисі: url-ден кейін сұрақ белгісі (?) қойылады, содан кейін әрбір параметр амперсандпен (&) бөлінеді. Параметр атауынан және оның теңдік белгісінен (=) кейінгі мәнінен тұрады. Параметрі бар URL мысалы:

Мұнда “search_query” деп аталатын бір параметр беріліп жатқанын және оның мәні “queen live aid” екенін көруге болады. ‘+’ мұнда сөздер арасындағы бос орын; редактормен жұмыс істегенде бос орындарды қалдыра беруге болады – бот оны өзі өзгертеді.

POST - көбінесе веб-сайттағы форманы толтыру кезінде жіберілетін сұрау түрі. Сұрау параметрлерді денеде береді; әрине, оларды GET сияқты бөлісуге болады, бірақ бұл сирек жасалады. Денедегі параметр JSON пішімінде немесе кілт-мән ретінде болуы мүмкін. Кілт-мән ретінде параметрлер формаларды бөліседі, JSON пішімі API үшін жиі қолданылады.

Сұрау тақырыбы. Әрбір сұрауға тақырып/атау қосуға болады. Онда бөлісетін деректердің пішімі мен қол жеткізу кілттері жиі жазылады. Әдетте біз бұл қойыншаны бос қалдырамыз, бірақ сирек жағдайларда API Token немесе “Content-type”: “application/json” сұрау түрін қою қажет.

JSON - (JavaScript Object Notation) - бұл атрибут-мән жұптары мен массивтерден тұратын деректер объектілерін сақтау және беру үшін адам оқи алатын мәтінді пайдаланатын ашық стандартты файл пішімі және деректер алмасу пішімі. Боттарда API-мен жұмыс істеу үшін сіз бұл пішімді білуіңіз керек, бәрі осыған негізделген.

Жалғастырмас бұрын, келесі мақалаларды оқыңыз:

https://www.json.org/json-en.html
https://developer.mozilla.org/en-US/docs/learn/javascript/objects/json

Сондай-ақ осы сайтта өзіңіздің JSON файлыңызды жасап көріңіз:

https://jsoneditoronline.org

Тәжірибе

Блоктар мен шарттар сұрауларды орындай алады. Шарт сұраулары диалогтың белгілі бір жолмен жүре алатынын немесе жүре алмайтынын сайтта түсіну үшін жасалады. Бұл жағдайда сұрау жолдың шарты тексерілген сайын орындалады. Керісінше, блоктардың сұраулары блокқа көшу орындалғанда ғана іске қосылады.

Сұрауды жасамас бұрын оның түрін таңдау керек:

POST-data және POST-json жоғарыда айтылғандай параметрлерді беру әдісімен ерекшеленеді (JSON пішімі немесе кілт-мән ретінде). Егер сіз JSON таңдасаңыз, параметрлерді тек сұрауда беруге болады. Пост үшін қосымша өріс ашылады: JSON POST-параметрлері. Маңызды! Параметрлер тек JSON пішімінде жазылуы керек, бот тек осылай жұмыс істейді.

Серверден алынған жауапты талдап, айнымалыларда сақтауға болады.

Жауапты тек JSON пішімінде болған жағдайда ғана ажыратуға болады.

Сақталған айнымалылар соңғы толтырылмаған жіберуде жазылады; егер жіберу қызыл блок арқылы берілсе, айнымалылар жойылады. Сондықтан деректерді сақтау қажет болса, айнымалыларды сары блок арқылы беру керек.

Айтпақшы, боттың айнымалыларға не жазғанын Leads бөлімінде көруге болады:

Деректерді жол ретінде емес беру

Әдепкі бойынша айнымалы мән #{} пішімінде келеді, бірақ содан кейін ол жол ретінде келеді. Айнымалыны сан ретінде беру үшін post-json параметрлерінің пішімін тексеруді өшіру керек.

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

Параметрлерді орнатқаннан кейін тексеруді қайта қосу ұсынылады.