Денеска од импровизирани материјали ќе собереме во https://api.telegram.org/
. Па, нема - не, не. Навистина, во нашата торба има т.н. веб-куки - Со нивна помош, ние не поднесуваме барања на одредена адреса, туку само го испраќаме нашето барање како одговор на секое барање до нас. Тоа е, како во Одеса - на прашање одговараме со прашање. Затоа Telegram API нема да се појави во нашиот код.
Одрекување од одговорностИмињата на сите државни организации споменати во овој напис се фиктивни, а можните совпаѓања со имињата на реалните организации се случајни.
Така, ќе направиме бот кој ќе не снабдува со паметни мисли. Токму како на сликата:
Можете да го пробате на дело - еве го името: @SmartThoughtsBot. Забележете го копчето „Вештината на Алис“? Тоа е затоа што ботот е еден вид „придружник“ за истоимените Вештината на Алис, т.е. ги извршува истите функции како Вештината на Алис и, можеби, дека тие можат да коегзистираат мирно, рекламирајќи се едни со други. За тоа како да се создаде Вештина за паметна мисла опишано во статијата
Создавање бот
Би сакал овој туторијал да биде корисен за сите, вкл. и почетнички „бот-билдери“. Затоа, во овој дел ќе опишам детално како да креирате воопшто во Телеграмаботови. За оние на кои не им требаат овие информации, продолжете со следните делови.
Отворете ја апликацијата Телегарам, ние го нарекуваме татко на сите ботови (тие имаат се како луѓето) - @BotFather - и за почеток, ќе му ја дадеме командата / help за да ја освежиме нашата меморија за тоа што можеме да направиме. Сега сме заинтересирани за тимот / newbot.
Бидејќи ботот опишан овде веќе е создаден, за демонстративни цели ќе создадам друг бот за кратко време (потоа ќе го избришам). Ќе му се јавам DemoHabrBot. Имиња (корисничко име) сите телеграмски ботови мора да завршуваат со збор бот, на пример: MyCoolBot или my_cool_bot Ова е за ботови. Но, прво, дајте му име на ботот (името) е за луѓе. Името може да биде на кој било јазик, да содржи празни места, не мора да завршува со збор бот, па дури и не мора да биде единствен. Во овој пример, го нареков овој бот Демо Хабр.
Сега изберете име за ботот (корисничко име, оној за ботови). Ајде да го наречеме DemoHabrBot. Се што е поврзано со името на ботот (името) воопшто не е поврзано со неговото име - корисничко име (или важи, но токму спротивното). По успешното креирање на уникатно име на бот, треба да го копираме и зачуваме (најстрого доверливо!) токенот прикажан на екранот со црвена стрелка. Со негова помош, подоцна ќе го инсталираме појдовниот Телеграма„Веб-кука за нашите Функција Yandex.
И сега ќе му ја дадеме командата на таткото на сите ботови: /mybotsи ќе ни покаже листа на сите ботови што сме ги создале. Да го оставиме тазе печениот бот засега на мира Демо Хабр (создаден е за да покаже како се креираат ботови, но ние ќе го користиме денес за други цели за демонстрација), и размислете за ботот Паметни мисли (@SmartThoughtsBot). Кликнете на копчето со неговото име во листата на ботови.
Ова е местото каде што можеме да го поставиме нашиот бот. Притискање на копче Уредување… ќе преминеме на уредување на една или друга опција. На пример, со кликнување на копчето Уреди име можеме да го смениме името на ботот, да речеме наместо Паметни мисли, пишувај луди идеи. Ботпик - ова е аватарот на ботот, мора да биде барем 150 x 150 px. Опис е краток опис што корисникот го гледа кога ботот е лансиран за прв пат, како одговор на прашањето: Што може да направи овој бот? За нас - уште пократок опис, кој се пренесува со линк до ботот (https://t.me/SmartThoughtsBot
) или кога гледате информации за тоа.
Треба само да ги поставиме командите. За да го направите ова, притиснете го копчето Наредби за уредување. Да се стандардизираат практиките на корисниците Телеграма препорачува секогаш да користите две команди: /почеток и / помош, и ако на ботот му требаат поставки - дополнителна команда /settings. Нашиот бот е едноставен како топка, така што сè уште не му требаат никакви поставки. Ги пишуваме првите две команди, кои потоа ќе ги обработиме во кодот. Сега, ако корисникот внесе коса црта (коса : /) во полето за внесување, ќе се појави листа на команди за нивно брзо избирање. Сè е како на сликата: лево - поставуваме команди преку бот-таткото; од десната страна, овие команди се веќе достапни за корисниците во нашиот бот.
Функција Yandex
Сега кога нашиот бот е создаден, ајде да одиме на Yandex.Cloudда креираме функција која ќе го изврши нашиот бот код. Ако не сте работеле со Yandex.Cloud прочитајте го материјалот
Значи во конзолата Yandex.Облаци во левото мени за навигација, изберете ја ставката Функции на облак, а потоа притиснете го копчето Направете функција. Ние му даваме име, а за себе - краток опис.
По притискање на копчето создаде и по неколку секунди, новата функција ќе се појави во списокот со сите функции. Кликнете на нејзиното име - ова ќе не однесе до страницата Преглед нашата функција. Тука треба да овозможитеOn) прекинувач јавна функцијада го направиме достапен од надворешното (за Yandex.Облаци) на светот и вредноста на полињата Линк до повик и Идентификатор - чувај го во длабока тајна од сите освен од себе и Телеграма, за да не можат разни измамници да ти ја повикаат функцијата.
Сега користејќи го левото мени одете на Уредувачот функции. Да ги оставиме настрана за момент нашите Паметни мисли, и креирајте минимална шаблонска функција за да ги проверите перформансите на нашиот бот... Меѓутоа, во овој контекст, оваа функција е нашиот бот... Накратко, сега и токму тука ќе направиме едноставен бот кој ќе „огледа“ ( т.е. испрати назад ) барања на корисниците. Овој шаблон секогаш може да се користи при креирање на нови ботови за телеграма за да се осигура дека комуникацијата со Телеграмаom работи добро. Кликнете Креирај датотека, јавете се индекс.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, треба да изгледа вака:
Подолу укажуваме влезна точка - индекс.боткаде индекс ова е името на датотеката (индекс.js), и бот - име на функцијата (модул.извози.бот). Оставете ги сите други полиња „како што се“, а во горниот десен агол кликнете на копчето Креирај верзија. По неколку секунди, оваа верзија на функцијата ќе се креира. Набргу по тестирањето веб-кука, ќе создадеме нова верзија − Паметни мисли.
Складирање на објекти
Сега кога поставивме Функција Yandexајде да одиме додека сме во конзолата Yandex.Облаци, создаде т.н. кофа (кофа, т.е. кофа на руски, во никој случај букет) за складирање датотеки со слики што ќе се користат во нашиот бот Паметни мисли. Изберете од левото мени за навигација Складирање на објекти, притисни го копчето Создадете кофа, дајте му име, на пример, img-кофа, и што е најважно, Читање пристап до објекти објави го јавно - инаку Телеграм нема да ги гледа нашите слики. Сите други полиња се оставени непроменети. Го притискаме копчето Создадете кофа.
После тоа, списокот со сите корпи може да изгледа вака (ако ова е вашата единствена кофа):
Сега предлагам да кликнам на името на корпата и да креирам папка внатре во неа за да организирам складирање на слики за различни апликации. На пример, за бот за телеграма Паметни мисли Направив папка наречена tg-bot-паметни мисли (Ништо, ќе ја разберам оваа шифра). Направете исто така.
Сега можете да кликнете на името на папката, да влезете во неа и да испратите датотеки:
И кликнување на името на датотеката - добијте го URL за употреба во нашиот бот, и воопшто - насекаде (но, не објавувајте го ова URL непотребно, бидејќи сообраќајот од складирање на предмети наплаќаат).
Еве, всушност, тоа е сè складирање на предмети. Сега ќе знаете што да правите кога ќе го видите барањето за поставување датотеки таму.
Webhook
Сега ќе инсталираме веб-кука — т.е. кога ботот добива ажурирање (на пример, порака од корисникот), од серверот Телеграма во нашата Функција Yandex барање ќе биде испратенода побара) со податоци. Еве низа што можете едноставно да ја залепите во полето за адреса на прелистувачот, а потоа да ја освежите страницата (ова треба да се направи само еднаш): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Само заменете {bot_token} до токенот што го добивме од таткото бот при креирањето на нашиот бот, и {webhook_url} - на URL нашите Функции на Yandex. Почекај минута! Но RossKomCensorship им забранува на давателите на услуги во Руската Федерација да ја служат адресата https://api.telegram.org
. Да тоа е точно. Но, можете да смислите нешто. На крајот на краиштата, можете, на пример, да ја прашате баба ви за тоа во Украина, Израел или Канада - таму нема „руска цензура“ и само Господ знае како луѓето живеат без неа. Како резултат на тоа, одговорот на барањето при инсталирање на веб-куката треба да изгледа вака:
Тестирање. Треба да се пресликува.
Ова е вистина. Нашите честитки - сега Функција Yandex стана Телеграма- бот!
Паметни мисли
И сега правиме паметни мисли. Кодот е отворен и лежи
Клонирајте го проектот и инсталирајте ги зависностите:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Направете ги потребните промени во датотеката индекс.js (незадолжително; не можете да промените ништо). Креирај zip-архива, со датотека индекс.js и папка модули на јазол внатре, на пример, наречен паметни.zip.
Сега одете во конзолата на нашата Функции на Yandex, изберете ја картичката ZIP архива, притисни го копчето Изберете датотекаи преземете ја нашата архива паметни.zip. Конечно, во горниот десен агол, кликнете на копчето Креирај верзија.
За неколку секунди, кога функцијата ќе се ажурира, повторно ќе го тестираме нашиот бот. Сега веќе не „огледа“, туку испорачува паметни мисли!
Тоа е се за денес. Следуваат и други статии. Ако сте заинтересирани да го прочитате ова, претплатете се на известувања за нови статии. Можете да се претплатите овде или Телеграма- канал
референци
Донати
Извор: www.habr.com