Прављење Телеграм бота у Иандек.Цлоуд

Прављење Телеграм бота у Иандек.Цлоуд

Данас ћемо се саставити од отпадног материјала Иандек.Цлоуд Телеграм бот Користећи Иандек Цлоуд функције (Или Иандек функције – скраћено) и Иандек Објецт Стораге (Или Складиштење објеката - за јасноћу). Код ће бити укључен Ноде.јс. Међутим, постоји једна пикантна околност - одређена организација тзв. РоссКомТсензур (цензура је забрањена чланом 29. Устава Руске Федерације), не дозвољава руским интернет провајдерима да шаљу захтеве на Телеграм АПИ по адреси: 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-канал ИТ Туториал ЗакхарИли Twitter @микезахаров.

референце

Код на ГитХуб-у
Иандек Цлоуд функције
Иандек Објецт Стораге
Ботови: Увод за програмере
Телеграм Бот АПИ

Донације

Прављење Телеграм бота у Иандек.Цлоуд

Извор: ввв.хабр.цом

Додај коментар