Сохтани боти Telegram дар Yandex.Cloud

Сохтани боти Telegram дар Yandex.Cloud

Имруз аз масолехи брак чамъ мекунем Yandex.Cloud Боти Telegram истифода бурда мешавад Функсияҳои абрии YandexФунксияҳои Yandex - кӯтоҳ) ва Анбори объекти YandexНигоҳдории объект - барои равшанӣ). Рамз фаъол хоҳад буд Node.js. Бо вуҷуди ин, як ҳолати ҷолиб вуҷуд дорад - як созмони муайяне даъват карда мешавад, бигӯем, РоссКомЦензур (сензура бо моддаи 29 Конститутсияи Федератсияи Русия манъ аст), ба провайдерҳои интернетии Русия имкон намедиҳад, ки дархостҳоро ба API Telegram ба суроғаи: https://api.telegram.org/. Хуб, мо намехоҳем - не, не. Охир, дар халтаи мо ба номхо хастанд. вебхукҳо — бо ёрии онхо мо ба адреси муайян мурочиат намеку-нем, балки факат дархости худро хамчун чавоб ба хар як дархост ба мо мефиристем. Яъне, чун дар Одесса ба савол бо савол чавоб медихем. Барои ҳамон API Telegram дар коди мо пайдо намешавад.

Радди масъулиятНомҳои ҳама созмонҳои давлатӣ, ки дар ин мақола зикр шудаанд, тахайюлӣ буда, эҳтимоли мувофиқат бо номи созмонҳои воқеии ҳаёт тасодуфӣ аст.

Ҳамин тавр, мо бот месозем, ки моро бо фикрҳои оқилона таъмин кунад. Айнан мисли дар расм:

Сохтани боти Telegram дар Yandex.Cloud

Шумо метавонед онро дар амал санҷед - ин аст ном: @SmartThoughtsBot. Тугмаро пай бурд "Маҳорати Алиса"? Ин аз он сабаб аст, ки бот як навъ "ҳамсафар" барои боти ҳамон ном аст. Маҳорати Алиса, яъне. хамон вазифахоро ичро мекунад Маҳорати Алиса ва мумкин аст, ки онхо бо табли-ги хамдигар хамзистии осоишта дошта бошанд. Дар бораи чӣ гуна эҷод кардан маҳорати андешаҳои оқилона дар мақола тавсиф шудааст Алиса маҳорат пайдо мекунад. Ҳоло (пас аз ворид кардани баъзе тағйирот пас аз нашри мақолаи боло) дар смартфон ин маҳорат чизе монанди ин хоҳад буд:

Сохтани боти Telegram дар Yandex.Cloud

Эҷоди бот

Ман мехоҳам, ки ин дарс барои ҳама муфид бошад, аз ҷумла. ва ботсозони навкор. Аз ин рӯ, дар ин бахш ман ба таври муфассал шарҳ медиҳам, ки чӣ тавр дар маҷмӯъ чӣ гуна эҷод кардан лозим аст телеграммаботҳо. Барои онҳое, ки ин маълумотро талаб намекунанд, ба бахшҳои зерин гузаред.

Барномаро кушоед Телегарам, биёед падари ҳама ботҳоро даъват кунем (онҳо мисли одамон ҳама чизро доранд) - @BotFather - ва аввал мо ба ӯ фармони /help медиҳем, то хотираи ӯро дар бораи он чи ки мо карда метавонем, тароват диҳад. Энди биз жамоага қизиқиш билдирамиз / навбот.

Сохтани боти Telegram дар Yandex.Cloud

Азбаски боти дар ин ҷо тавсифшуда аллакай сохта шудааст, бо мақсади намоишӣ ман дар муддати кӯтоҳ боти дигар эҷод мекунам (ва баъд онро нест мекунам). Ман ба ӯ занг мезанам DemoHabrBot. Номҳо (Логин) аз хамаи ботхои телеграмма бояд бо калима хотима ёбад боти, масалан: MyCoolBot ё боти_худ - ин барои ботҳо. Аммо аввал мо ба бот ном медиҳем (ном) - ва ин барои одамон аст. Ном метавонад дар ҳама гуна забон бошад, дорои фосилаҳо бошад ва набояд бо калима анҷом шавад боти, ва ҳатто набояд беназир бошад. Дар ин мисол ман ин ботро даъват кардам Намоиши Ҳабр.

Сохтани боти Telegram дар Yandex.Cloud

Акнун номеро барои бот интихоб кунед (Логин, яке барои ботҳо). Биёед ба ӯ занг занем DemoHabrBot. Ҳама чиз вобаста ба номи бот (ном) ба номи ӯ тамоман дахл надорад - Логин (ё дахл дорад, аммо комилан баръакс). Пас аз бомуваффақият эҷод кардани номи беназири бот, мо бояд токенеро, ки дар скриншот бо тирчаи сурх нишон дода шудааст, нусхабардорӣ ва захира кунем (бо эътимоди сахттарин!). Бо кӯмаки он мо баъдтар сарчашмаи онро муайян мекунем телеграмма'вебхук ба мо Функсияи Yandex.

Сохтани боти Telegram дар Yandex.Cloud

Акнун биёед ба падари ҳамаи ботҳо фармон диҳем: /mybots, ва он ба мо рӯйхати ҳамаи ботҳои офаридаамонро нишон медиҳад. Биёед боти нав пухтаро ҳоло танҳо гузорем Намоиши Ҳабр (он барои нишон додани тарзи сохтани ботҳо сохта шудааст, аммо мо онро имрӯз барои дигар мақсадҳои намоишӣ низ истифода хоҳем кард) ва биёед ботро бубинем Андешаҳои оқилона (@SmartThoughtsBot). Тугмаро бо номи он дар рӯйхати ботҳо клик кунед.

Сохтани боти Telegram дар Yandex.Cloud

Дар ин ҷо мо метавонем боти худро танзим кунем. Бо пахш кардани тугма Таҳрир кардан… Мо ба таҳрири ин ё он вариант мегузарем. Масалан, бо пахш кардани тугма Таҳрири ном мо метавонем номи бот иваз, мегӯянд, ба ҷои Андешаҳои оқилона, нависед Идеяҳои девона. Botpic - ин аватари бот аст, ҳадди аққал бояд бошад 150 х 150 px. Тавсифи — ин тавсифи мухтасарест, ки корбар ҳангоми оғоз кардани бот бори аввал ҳамчун ҷавоб ба саволи худ мебинад: Ин бот чӣ кор карда метавонад? дар бораи — тавсифи боз ҳам кӯтоҳтаре, ки бо истинод ба бот интиқол дода мешавад (https://t.me/SmartThoughtsBot) ё ҳангоми дидани маълумот дар бораи он.

Сохтани боти Telegram дар Yandex.Cloud

Ҳамаи мо бояд кор кунем, ки фармонҳоро насб кунем. Барои ин тугмаро пахш кунед Таҳрири Фармонҳо. Барои стандартизатсияи таҷрибаи корбарон телеграмма тавсия медиҳад, ки ҳамеша ду фармонро истифода баранд: / оғоз и / Ёрӣ, ва агар бот ба танзимот ниёз дошта бошад, фармони иловагии /settings -ро истифода баред. Боти мо мисли тӯб оддӣ аст, аз ин рӯ он ҳоло ба ягон танзимот ниёз надорад. Мо ду фармони аввалро менависем, ки онҳоро дар код коркард мекунем. Ҳоло, агар корбар дар майдони вуруд хатти слэш (аломати хат: /) ворид кунад, барои интихоби зуд рӯйхати фармонҳо пайдо мешавад. Ҳама чиз дар расм аст: дар тарафи чап - мо фармонҳоро тавассути боти падар насб мекунем; дар тарафи рост, ин фармонҳо аллакай барои корбарони боти мо дастрасанд.

Сохтани боти Telegram дар Yandex.Cloud

Функсияи Yandex

Акнун, ки боти мо офарида шудааст, биёед ба Yandex.Cloudбарои сохтани функсияе, ки рамзи боти моро иҷро кунад. Агар шумо бо он кор накарда бошед Yandex.Cloud материалро хонед Алиса дар сарзамини Bitrix, ва баъдан - Функсияҳои Yandex почта мефиристанд. Ман мутмаинам, ки ин ду мақолаи нисбатан кӯтоҳ барои шумо фаҳмиши ибтидоӣ дар бораи ин мавзӯъ кофӣ хоҳанд буд.

Ҳамин тавр, дар консол Yandex.Cloud дар менюи новбари чапи ҷузъро интихоб кунед Вазифаҳои абрӣ, ва он гоҳ тугмаро пахш кунед Функсия эҷод кунед. Мо онро барои худ ном ва тавсифи мухтасар медихем.

Сохтани боти Telegram дар Yandex.Cloud

Пас аз пахш кардани тугма Эҷод кунед ва пас аз якчанд сония, функсияи нав дар рӯйхати ҳамаи функсияҳо пайдо мешавад. Номи ӯро клик кунед - ин моро ба саҳифа мебарад шарҳ вазифаи мо. Дар ин ҷо шумо бояд фаъол кунед (On) гузариш Функсияи ҷамъиятӣто ки он аз берун дастрас шавад (барои Yandex.Cloud) и дуньё ва маънии сахрохо Истиноди занг и ID — онро ба ҷуз худатон ва Telegram аз ҳама аз ҳама махфӣ нигоҳ доред, то ки функсияи шумо аз ҷониби қаллобони гуногун даъват карда нашавад.

Сохтани боти Telegram дар Yandex.Cloud

Акнун, бо истифода аз менюи чап, гузаред Таҳрири вазифахо. Биёед як лахза худро як су гузорем Андешаҳои оқилона, ва барои санҷидани функсияи боти мо функсияи минималии шаблон эҷод кунед... Аммо, дар ин замина, ин функсия боти мост... Хулоса, ҳоло ва дар ин ҷо мо боти оддиеро месозем, ки "оина" ( яъне баргардонидани ) дархостҳои корбар. Ин қолабро ҳамеша ҳангоми сохтани ботҳои нави телеграмма истифода бурдан мумкин аст, то боварӣ ҳосил кунед, ки муошират бо Telegram'ohm хуб кор мекунад. клик кунед Файл эҷод кунед, биёед онро даъват кунем индекс.js, ва онлайн Муҳаррири код рамзи зеринро ба ин файл гузоред:

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
  };
};

Дар консоли Yandex.Cloud он бояд чунин бошад:

Сохтани боти Telegram дар Yandex.Cloud

Дар поён мо нишон медиҳем Нуқтаи вуруд - index.botки дар шохиси ин номи файл аст (индекс.js), ва боти - номи функсия (module.exports.bot). Ҳама майдонҳои дигарро тавре тарк кунед ва тугмаро дар кунҷи рости боло пахш кунед Эҷоди версия. Пас аз чанд сония ин версияи функсия сохта мешавад. Ба зудӣ пас аз санҷиш вебхук, мо версияи нави − эҷод мекунем Андешаҳои оқилона.

Сохтани боти Telegram дар Yandex.Cloud

Нигоҳдории объект

Акнун, ки мо офаридаем Функсияи Yandex, биёед, вақте ки мо дар консол ҳастем Yandex.Cloud, ба ном эчод мекунем сатил (сатил, яъне. сатил бо забони русӣ, на гулдастаҳо) барои нигоҳ доштани файлҳои тасвирӣ, ки дар боти мо истифода мешаванд Андешаҳои оқилона. Дар менюи новбари чап ашёро интихоб кунед Нигоҳдории ашё, тугмаро пахш кунед Сатил эҷод кунед, барои он ном пайдо кунед, масалан, img-сатилва муҳимтар аз ҳама, Дастрасии хондан ба объектҳо Мо онро оммавӣ мекунем - вагарна Telegram расмҳои моро намебинад. Мо хамаи дигар майдонхоро бетагьир мемонем. Тугмаро пахш кунед Сатил эҷод кунед.

Сохтани боти Telegram дар Yandex.Cloud

Пас аз ин, рӯйхати ҳамаи сатилҳо метавонад чунин бошад (агар ин сатили ягонаи шумо бошад):

Сохтани боти Telegram дар Yandex.Cloud

Ҳоло ман пешниҳод мекунам, ки номи сатилро клик кунед ва дар дохили он ҷузвдон эҷод кунед, то нигоҳдории тасвирҳоро барои замимаҳои гуногуни шумо ташкил кунед. Масалан, барои боти телеграмма Андешаҳои оқилона Ман папкаеро сохтам, ки ном дорад tg-bot-фикрҳои оқилона (ҳеҷ чиз, ман ин кодро мефаҳмам). Яке низ эҷод кунед.

Сохтани боти Telegram дар Yandex.Cloud

Акнун шумо метавонед номи папкаро клик кунед, ба он ворид шавед ва файлҳоро бор кунед:

Сохтани боти Telegram дар Yandex.Cloud

Ва бо пахш кардани номи файл - онро ба даст оред URL барои истифода дар боти мо ва умуман - дар ҳама ҷо (аммо инро нашр накунед URL нолозим, зеро ҳаракати нақлиёт аз Нигоҳдории объект ситонида мешавад).

Сохтани боти Telegram дар Yandex.Cloud

Ин аст, асосан дар он аст, Нигоҳдории объект. Акнун шумо хоҳед донист, ки вақте ки шумо дар он ҷо дархости боркунии файлҳоро мебинед, чӣ бояд кард.

Вебхук

Акнун мо насб мекунем вебхук - яъне. вақте ки бот аз сервер навсозӣ мегирад (масалан, паём аз корбар). телеграмма ба мо Функсияи Yandex дархост фиристода мешавад (дархост) бо маълумот. Ин сатрест, ки шумо метавонед ба майдони суроғаи браузери худ часбонед ва сипас саҳифаро нав кунед (шумо танҳо як маротиба ин корро кунед): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Мо танҳо онро иваз мекунем {bot_token} ба нишонае, ки мо хангоми сохтани боти худ аз падар боти гирифтаем ва {webhook_url} - дар URL мо Функсияҳои Yandex. Каме истед! Аммо РоссКомЦензур ба провайдерҳо дар Федератсияи Русия хидматрасонии суроғаро манъ мекунад https://api.telegram.org. Бале, дуруст аст. Аммо чизе пайдо кунед. Дар ниҳоят, шумо метавонед, масалан, дар Украина, Исроил ё Канада дар ин бора аз бибии худ пурсед - дар он ҷо "Росскомсензура" вуҷуд надорад ва танҳо Худо медонад, ки одамон бидуни он чӣ гуна зиндагӣ мекунанд. Дар натиҷа, дархост-ҷавоб ҳангоми насби вебхук бояд чунин бошад:

Сохтани боти Telegram дар Yandex.Cloud

Мо озмоиш мекунем. Он бояд "оина" кунад.

Сохтани боти Telegram дар Yandex.Cloud

Ин дуруст аст. Табрикоти мо - ҳоло Функсияи Yandex шуд телеграмма-бот!

Андешаҳои оқилона

Акнун биёед фикрҳои оқилонаро иҷро кунем. Рамз кушода аст ва дар он аст GitHub. Он хеле хуб шарҳ дода шудааст ва танҳо сад сатр аст. Онро мисли либреттои операи дива хонед!

Сохтани боти Telegram дар Yandex.Cloud

Лоиҳаро клон кунед ва вобастагиҳоро насб кунед:

git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i

Тағироте, ки ба файл лозим аст, ворид кунед индекс.js (ихтиёрӣ; ба шумо лозим нест, ки чизеро тағир диҳед). Эҷод кунед Индекс-архив, бо файл индекс.js ва папка гиреҳ_модулҳо дар дохили, масалан, зери ном smart.zip.

Сохтани боти Telegram дар Yandex.Cloud

Акнун ба консол ба мо равед Функсияҳои Yandex, ҷадвалро интихоб кунед бойгонии ZIP, тугмаро пахш кунед Файлро интихоб кунед, ва бойгонии моро зеркашӣ кунед smart.zip. Дар ниҳоят, дар кунҷи рости боло тугмаро пахш кунед Эҷоди версия.

Сохтани боти Telegram дар Yandex.Cloud

Пас аз чанд сония, вақте ки функсия навсозӣ мешавад, мо боти худро дубора санҷем. Акнун ӯ дигар «оина намекунад», балки фикрҳои оқилона мерасонад!

Сохтани боти Telegram дар Yandex.Cloud

Ин ҳама барои имрӯз аст. Мақолаҳои бештар пайравӣ мекунанд. Агар шумо ба хондани ин таваҷҷӯҳ дошта бошед, ба огоҳиномаҳо дар бораи мақолаҳои нав обуна шавед. Шумо метавонед дар ин ҷо обуна шавед, ё дар телеграммаканал Дарси IT Захарё Twitter @mikezharov.

мурожиат

Рамз дар GitHub
Функсияҳои абрии Yandex
Анбори объекти Yandex
Ботҳо: Муқаддима барои таҳиягарон
API-и Telegram Bot

Хайрияҳо

Сохтани боти Telegram дар Yandex.Cloud

Манбаъ: will.com

Илова Эзоҳ