Данас ћемо се саставити од отпадног материјала https://api.telegram.org/
. Па, нећемо - не, не. Уосталом, у нашој торби постоје тзв. вебхоокс — уз њихову помоћ не постављамо захтеве на одређену адресу, већ једноставно шаљемо наш захтев као одговор на било који захтев нама. Односно, као у Одеси, на питање одговарамо питањем. Зато Телеграм АПИ неће се појавити у нашем коду.
Одрицање од одговорностиИмена било којих владиних организација поменутих у овом чланку су измишљена, а могућа подударања са именима организација из стварног живота су случајна.
Дакле, направићемо бота који ће нам пружити паметне мисли. Тачно као на слици:
Можете га испробати у акцији - ево назива: @СмартТхоугхтсБот. Приметио сам дугме "Алисина вештина"? То је зато што је бот нека врста „пратиоца“ за бота истог имена. Алисина вештина, тј. обавља исте функције као Алисина вештина а могуће је да ће моћи мирно да коегзистирају рекламирајући једни друге. О томе како се ствара скилл Паметне мисли описано у чланку
Креирање бота
Желео бих да овај туторијал буде користан свима, укљ. и почетници у изградњи ботова. Стога ћу у овом одељку детаљно описати како се ствара уопште Telegram'е ботс. За оне којима ове информације нису потребне, пређите на следеће одељке.
Otvorite aplikaciju Телегарам, назовимо оца свих ботова (имају све као људи) - @БотФатхер - и прво ћемо му дати команду /хелп да му освежи сећање на оно што можемо да урадимо. Сада ћемо бити заинтересовани за тим / невбот.
Пошто је овде описани бот већ креиран, у сврху демонстрације направићу још једног бота за кратко време (а затим га обрисати). Позваћу га ДемоХабрБот. Имена (корисничко име) свих телеграм ботова мора да се завршава речју њушка, на пример: МиЦоолБот или ми_цоол_бот - ово је за ботове. Али прво дајемо име боту (име) - а ово је за људе. Име може бити на било ком језику, да садржи размаке и не мора да се завршава речју њушка, и чак не мора да буде јединствен. У овом примеру сам назвао овог бота Демо Хабр.
Сада изаберите име за бота (корисничко име, онај за ботове). Хајде да га позовемо ДемоХабрБот. Све у вези са именом бота (име) се уопште не односи на његово име - корисничко име (или важи, али управо супротно). Након успешног креирања јединственог имена бота, потребно је да копирамо и сачувамо (са најстрожим поверењем!) токен приказан на снимку екрана са црвеном стрелицом. Уз његову помоћ ћемо касније установити порекло из Telegram'вебхоок за наше Иандек функција.
Сада дајмо команду оцу свих ботова: /миботс, и приказаће нам листу свих ботова које смо креирали. Оставимо за сада свеже печеног бота на миру Демо Хабр (направљен је да покаже како се праве ботови, али ћемо га данас користити и у друге демонстрационе сврхе), а погледајмо бота Паметне мисли (@СмартТхоугхтсБот). Кликните на дугме са његовим именом на листи ботова.
Овде можемо да конфигуришемо нашег бота. Притиском на дугме Уредити… Прећи ћемо на уређивање једне или друге опције. На пример, кликом на дугме Уреди име можемо променити име бота, рецимо уместо тога Паметне мисли, писати Црази Идеас. Ботпиц - ово је аватар бота, мора бити најмање КСНУМКС к КСНУМКС пк. Opis — ово је кратак опис који корисник види када први пут покрене бот, као одговор на питање: Шта овај бот може да уради? O nama — још краћи опис, који се преноси уз везу до бота (https://t.me/SmartThoughtsBot
) или приликом прегледа информација о томе.
Све што треба да урадимо је да поставимо команде. Да бисте то урадили, притисните дугме Уреди команде. За стандардизацију праксе корисника Telegram препоручује да увек користите две команде: /почетак и / помоћ, а ако су боту потребна подешавања, користите додатну команду /сеттингс. Наш бот је једноставан као лопта, тако да му још нису потребна подешавања. Напишемо прве две команде, које ћемо затим обрадити у коду. Сада, ако корисник унесе косу црту (знак косе црте: /) у поље за унос, појавиће се листа команди за брзи избор. Све је као на слици: лево - инсталирамо команде преко оца бота; са десне стране, ове команде су већ доступне корисницима у нашем боту.
Иандек функција
Сада када је наш бот креиран, идемо на Иандек.Цлоудда креирамо функцију која ће извршити код нашег бота. Ако нисте радили са Иандек.Цлоуд прочитати материјал
Дакле, у конзоли Иандек.Цлоуд у левом навигационом менију изаберите ставку Цлоуд Фунцтионс, а затим притисните дугме Креирајте функцију. Дајемо му име и кратак опис за себе.
Након притиска на дугме створити а након неколико секунди нова функција ће се појавити на листи свих функција. Кликните на њено име - ово ће нас одвести на страницу Преглед наша функција. Овде треба да омогућите (On) прекидач Јавна функцијатако да постаје доступан са спољашње (за Иандек.Цлоуд) света, и значење поља Веза за позив и ИД — чувајте то у дубокој тајности од свих осим од себе и Телеграма, тако да разни преваранти не би могли да позову вашу функцију.
Сада, користећи леви мени, идите на Уредник функције. Оставимо на тренутак наше Паметне мисли, и креирајте минималну функцију шаблона да проверите функционалност нашег бота... Међутим, у овом контексту, ова функција је наш бот... Укратко, сада и управо овде ћемо направити једноставан бот који ће „огледати“ ( односно послати назад ) корисничке захтеве. Овај шаблон се увек може користити када креирате нове телеграм ботове како бисте осигурали комуникацију са Телеграм'охм ради добро. Кликните Креирајте датотеку, хајде да га позовемо индек.јс, и на мрежи Уредник кода налепите следећи код у ову датотеку:
module.exports.bot = async (event) => {
const body = JSON.parse(event.body);
const msg = {
'method': 'sendMessage',
'chat_id': body.message.chat.id,
'text': body.message.text
};
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': JSON.stringify(msg),
'isBase64Encoded': false
};
};
У конзоли Иандек.Цлоуд би требало да изгледа отприлике овако:
Даље у наставку наводимо Улазна тачка - индек.ботГде индекс ово је име датотеке (индек.јс), и њушка - назив функције (модуле.екпортс.бот). Оставите сва остала поља онаква каква јесу и кликните на дугме у горњем десном углу Креирајте верзију. За неколико секунди ова верзија функције ће бити креирана. Убрзо након тестирања вебхоок, направићемо нову верзију - Паметне мисли.
Складиштење објеката
Сада када смо створили Иандек функција, хајде, док смо у конзоли Иандек.Цлоуд, направимо тзв канта (канта, тј. канта на руском, а не букет уопште) за чување датотека слика које ће се користити у нашем боту Паметне мисли. У левом навигационом менију изаберите ставку Објецт Стораге, притисните дугме Направите канту, смислите име за то, нпр. имг-буцкет, и што је најважније, Приступ за читање објеката Објављујемо то јавно - иначе Телеграм неће видети наше слике. Остала поља остављамо непромењена. притисните дугме Направите канту.
Након овога, листа свих корпи може изгледати отприлике овако (ако је ово ваша једина корпа):
Сада предлажем да кликнете на име корпе и креирате фасциклу у њој да организујете складиштење слика за различите апликације. На пример, за телеграм бот Паметне мисли Направио сам фасциклу под називом тг-бот-смарт-тхоугхтс (ништа, разумећу овај код). Направите и један.
Сада можете да кликнете на име фасцикле, уђете у њу и отпремите датотеке:
И кликом на име датотеке - набавите га УРЛ адреса за употребу у нашем боту и уопште - било где (али немојте ово објављивати УРЛ адреса непотребно, пошто саобраћај из Складиштење објеката наплаћен).
То је у суштини све што је ту Складиштење објеката. Сада ћете знати шта да радите када видите упит за отпремање датотека тамо.
Вебхоок
Сада ћемо инсталирати вебхоок - тј. када бот прими ажурирање (на пример, поруку од корисника) са сервера Telegram у наше Иандек функција биће послат захтев (захтева) са подацима. Ево реда који можете једноставно да налепите у поље за адресу прегледача, а затим освежите страницу (ово морате да урадите само једном): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Само ћемо га заменити {бот_токен} на токен који смо добили од бота оца приликом креирања нашег бота, и {вебхоок_урл} - на УРЛ адреса наш Иандек функције. Сачекај минут! Али РоссКомТсензур забрањује провајдерима у Руској Федерацији да сервисирају адресу https://api.telegram.org
. Да то је тачно. Али смисли нешто. На крају крајева, можете, на пример, да питате своју баку о томе у Украјини, Израелу или Канади - тамо нема „росскомцензуре“, а Бог зна како људи живе без ње. Као резултат, захтев-одговор приликом инсталирања веб-хука треба да изгледа овако:
Ми тестирамо. Требало би да се „огледа“.
Ово је истина. Наше честитке - сада Иандек функција је постао Telegram-бот!
Паметне мисли
Хајде сада да урадимо Паметне мисли. Код је отворен и лежи
Клонирајте пројекат и инсталирајте зависности:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Направите потребне измене у датотеци индек.јс (опционо; не морате ништа да мењате). Креирај рар-архива, са фајлом индек.јс и фолдер ноде_модулес унутра, на пример, под именом смарт.зип.
Сада идите на конзолу до нашег Иандек функције, изаберите картицу ЗИП архива, притисните дугме Изаберите датотеку, и преузмите нашу архиву смарт.зип. На крају, у горњем десном углу кликните на дугме Креирајте верзију.
За неколико секунди, када се функција ажурира, поново ћемо тестирати нашег бота. Сада више не „огледава“, већ износи паметне мисли!
То је све за данас. Следи још чланака. Ако сте заинтересовани да ово прочитате, претплатите се на обавештења о новим чланцима. Можете се претплатити овде или на Telegram-канал
референце
Донације
Извор: ввв.хабр.цом