Ngawangun bot Telegram dina Yandex.Cloud

Ngawangun bot Telegram dina Yandex.Cloud

Dinten, tina bahan besi tua, urang bakal ngumpul Yandex.Cloud Telegram bot ngagunakeun Fungsi Awan Yandex (atawa Fungsi Yandex - pikeun pondok) jeung Panyimpenan Objék Yandex (atawa Panyimpenan objék - pikeun kajelasan). Kodeu bakal hurung Node.js. Sanajan kitu, aya hiji kaayaan piquant - organisasi tangtu disebut, hayu urang nyebutkeun, RossKomTsenzur (Sénsor dilarang ku Pasal 29 Konstitusi Féderasi Rusia), henteu ngijinkeun panyadia Internét Rusia ngirimkeun pamundut ka API Telegram ka alamat: https://api.telegram.org/. Nya, urang moal - henteu, henteu. Barina ogé, dina kantong urang aya nu disebut. webhooks — kalayan bantosanana, kami henteu nyuhunkeun pamenta ka alamat khusus, tapi ngan ukur ngirimkeun pamundut urang salaku tanggapan kana pamundut naon waé ka kami. Nyaéta, sapertos di Odessa, urang ngajawab patarosan kalayan patarosan. Éta alesanana API Telegram moal muncul dina kode urang.

BantahanNgaran-ngaran organisasi pamaréntahan nu disebutkeun dina artikel ieu téh fiktif, sarta kamungkinan patandingan jeung ngaran organisasi kahirupan nyata téh kabeneran.

Janten, urang bakal ngadamel bot anu bakal masihan urang pikiran anu pinter. Persis sapertos dina gambar:

Ngawangun bot Telegram dina Yandex.Cloud

Anjeun tiasa nyobian éta dina aksi - ieu nami: @SmartThoughtsBot. Perhatikeun tombol "Kaahlian Alice"? Ieu alatan bot nu mangrupakeun jenis "pendamping" pikeun bot nu ngaranna sarua. kaahlian Alice urang, i.e. eta ngalakukeun fungsi anu sarua sakumaha kaahlian Alice urang sarta mungkin yen aranjeunna bakal bisa hirup babarengan damai ku iklan silih. Ngeunaan kumaha carana nyieun skill Pikiran Smart dijelaskeun dina artikel Alice gains kaahlian. Ayeuna (sanggeus nyieun sababaraha parobahan sanggeus publikasi artikel di luhur) dina smartphone ieu kaahlian bakal kasampak kawas kieu:

Ngawangun bot Telegram dina Yandex.Cloud

Nyiptakeun bot

Abdi hoyong tutorial ieu mangpaat pikeun sadayana, kalebet. jeung pembina bot novice. Ku alatan éta, dina bagian ieu kuring bakal ngajelaskeun dina sababaraha jéntré cara nyieun sacara umum telegrambot-bot. Pikeun anu henteu meryogikeun inpormasi ieu, teraskeun kana bagian di handap ieu.

Buka aplikasi Telegaram, hayu urang nelepon bapana sagala bot (aranjeunna boga sagalana kawas jalma) - @BotBapa - sareng mimitina kami bakal masihan anjeunna paréntah / pitulung pikeun nyegerkeun mémori tina naon anu urang tiasa laksanakeun. Ayeuna urang bakal museurkeun tim / newbot.

Ngawangun bot Telegram dina Yandex.Cloud

Kusabab bot anu dijelaskeun di dieu parantos didamel, pikeun tujuan démo kuring bakal nyiptakeun bot anu sanés pikeun waktos anu pondok (teras ngahapus). Kuring bakal nelepon anjeunna DemoHabrBot. Ngaran (ngaran pamaké) sadaya bot telegram kedah ditungtungan ku kecap botContona: MyCoolBot atawa my_cool_bot - ieu kanggo bot. Tapi mimitina urang masihan bot nami (nami) - sareng ieu kanggo jalma. Ngaranna tiasa dina basa naon waé, ngandung spasi, sareng henteu kedah ditungtungan ku kecap bot, komo teu kudu unik. Dina conto ieu, kuring disebut bot ieu Demo Habr.

Ngawangun bot Telegram dina Yandex.Cloud

Ayeuna pilih ngaran pikeun bot (ngaran pamaké, hiji keur bot). Hayu urang nelepon anjeunna DemoHabrBot. Sadayana anu aya hubunganana sareng nami bot (nami) henteu aya hubunganana sareng namina pisan - ngaran pamaké (atawa lumaku, tapi persis sabalikna). Saatos hasil nyiptakeun nami bot anu unik, urang kedah nyalin sareng nyimpen (dina kapercayaan anu paling ketat!) Token anu dipidangkeun dina layar nganggo panah beureum. Kalayan pitulungna urang engké bakal ngadegkeun asal ti telegram'a webhook ka urang Fungsi Yandex.

Ngawangun bot Telegram dina Yandex.Cloud

Ayeuna hayu urang masihan paréntah ka bapa sadaya bot: /mybots, sarta eta bakal némbongkeun urang daptar sadaya bot urang geus dijieun. Hayu urang tinggalkeun bot anu nembe dipanggang nyalira Demo Habr (éta diciptakeun pikeun nunjukkeun kumaha cara nyiptakeun bot, tapi urang ogé bakal ngagunakeun éta ayeuna pikeun tujuan démo anu sanés), sareng hayu urang tingali bot Pikiran Pinter (@SmartThoughtsBot). Klik tombol kalawan ngaranna dina daptar bot.

Ngawangun bot Telegram dina Yandex.Cloud

Di dieu urang tiasa ngonpigurasikeun bot urang. Ku mencét tombol Édit ... Urang bakal ngaléngkah ka ngédit hiji atawa pilihan séjén. Contona, ku ngaklik on tombol Edit Ngaran urang bisa ngaganti ngaran bot, nyebutkeun gantina Pikiran Pinter, nulis Gagasan Gélo. Botpic - ieu avatar bot urang, sahenteuna kudu 150 x 150 px. gambaran - ieu mangrupikeun pedaran pondok anu ditingali ku pangguna nalika ngamimitian bot pikeun pertama kalina, salaku jawaban kana patarosan: Naon anu tiasa dilakukeun ku bot ieu? kira-kira - déskripsi anu langkung ringkes, anu dikirimkeun nganggo tautan ka bot (https://t.me/SmartThoughtsBot) atanapi nalika ningali inpormasi ngeunaan éta.

Ngawangun bot Telegram dina Yandex.Cloud

Sadaya anu urang kedah laksanakeun nyaéta nyetél paréntah. Jang ngalampahkeun ieu, pencét tombol Edit Paréntah. Pikeun ngabakukeun prakték pamaké telegram nyarankeun sok nganggo dua paréntah: /mimiti и / Tulung, sareng upami bot peryogi setélan, paké paréntah tambahan / setélan. Bot kami saderhana sapertos bal, janten henteu peryogi setélan naon waé. Urang nulis dua paréntah kahiji, nu lajeng urang ngolah dina kode. Ayeuna, upami pangguna ngalebetkeun slash (tanda slash: /) dina widang input, daptar paréntah bakal muncul pikeun pilihan gancang. Sagalana geus sakumaha dina gambar: on kénca - urang install paréntah ngaliwatan bot ramana; di katuhu, paréntah ieu geus sadia pikeun pamaké di bot urang.

Ngawangun bot Telegram dina Yandex.Cloud

Fungsi Yandex

Ayeuna bot urang geus dijieun, hayu urang balik ka Yandex.Cloudpikeun nyieun fungsi anu bakal ngaéksekusi kode bot urang. Upami anjeun teu acan damel sareng Yandex.Cloud maca bahan Alice dina Land of Bitrix, teras salajengna - Fungsi Yandex ngirim surat. Kuring yakin yén dua artikel anu kawilang pondok ieu bakal cekap pikeun anjeun gaduh pamahaman dasar ngeunaan subjek.

Ku kituna dina konsol Yandex.Cloud dina menu navigasi kénca pilih item nu Fungsi Awan, teras pencét tombol Jieun fungsi. Kami masihan nami sareng pedaran pondok pikeun diri urang sorangan.

Ngawangun bot Telegram dina Yandex.Cloud

Saatos mencét tombol nyiptakeun sareng saatos sababaraha detik, fungsi anyar bakal muncul dina daptar sadaya fungsi. Klik ngaran dirina - ieu bakal mawa urang ka kaca gambaran fungsi urang. Di dieu anjeun kedah ngaktipkeun (On) ngalih Fungsi umumsupados tiasa diaksés ti luar (pikeun Yandex.Cloud) dunya, jeung harti sawah Tumbu nelepon и Identifier - tetep rusiah pisan ti sadayana kecuali diri anjeun sareng Telegram, supados fungsi anjeun henteu tiasa disebat ku sababaraha scammers.

Ngawangun bot Telegram dina Yandex.Cloud

Ayeuna, ngagunakeun menu kénca, buka jelema nu nyunting fungsi. Hayu urang sisihkan sakedap urang Pikiran Pinter, sarta nyieun fungsi template minimal pikeun pariksa pungsionalitas bot urang... Sanajan kitu, dina konteks ieu, fungsi ieu bot urang... Pondokna, ayeuna jeung katuhu dieu urang bakal nyieun bot basajan nu bakal "eunteung" ( ie ngirim deui ) requests pamaké. Citakan ieu salawasna bisa dipaké nalika nyieun bot telegram anyar pikeun mastikeun yén komunikasi jeung Telegram'ohm dianggo saé. Pencét Jieun file, hayu urang nelepon anjeunna indéks.js, sareng online Editor kode tempelkeun kodeu ieu kana file ieu:

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

Dina konsol Yandex.Cloud sakuduna kasampak kawas kieu:

Ngawangun bot Telegram dina Yandex.Cloud

Salajengna di handap kami nunjukkeun Titik asup - indéks.botdimana daptar eusi ieu nami file (indéks.js), Jeung bot - ngaran fungsi (module.exports.bot). Ninggalkeun sadaya widang anu sanés, teras klik tombol di pojok kanan luhur Jieun versi. Dina sababaraha detik versi ieu fungsi bakal dijieun. Teu lila sanggeus nguji webhook, urang bakal nyieun versi anyar - Pikiran Pinter.

Ngawangun bot Telegram dina Yandex.Cloud

Panyimpenan objék

Ayeuna urang geus dijieun Fungsi Yandex, hayu, bari kami dina konsol nu Yandex.Cloud, hayu urang nyieun nu disebut ember (LIPI, i.e. ember dina basa Rusia, sanés Bouquet pisan) pikeun nyimpen file gambar anu bakal dianggo dina bot urang Pikiran Pinter. Dina menu navigasi kénca pilih item nu obyek Panyimpenan, pencét tombol Jieun ember, nyieun ngaran pikeun eta, contona, img-ember, sareng, anu paling penting, Maca aksés ka objék Kami ngajantenkeun umum - upami henteu Telegram moal ningali gambar kami. Urang ninggalkeun sagala widang séjén unchanged. Pencét tombol Jieun ember.

Ngawangun bot Telegram dina Yandex.Cloud

Saatos ieu, daptar sadaya ember sigana sapertos kieu (upami ieu mangrupikeun ember anjeun):

Ngawangun bot Telegram dina Yandex.Cloud

Ayeuna kuring nyarankeun ngaklik nami ember sareng nyiptakeun folder di jerona pikeun ngatur panyimpen gambar pikeun aplikasi anu béda. Contona, pikeun bot telegram Pikiran Pinter Kuring nyieun folder disebut tg-bot-pinter-pikiran (euweuh, Kuring bakal ngartos kode ieu). Jieun hiji ogé.

Ngawangun bot Telegram dina Yandex.Cloud

Ayeuna anjeun tiasa ngaklik nami folder, lebet kana éta sareng unggah file:

Ngawangun bot Telegram dina Yandex.Cloud

Sareng ku ngaklik nami file - kéngingkeun URL pikeun dianggo dina bot urang, sareng sacara umum - dimana waé (tapi ulah nyebarkeun ieu URL teu perlu, saprak lalulintas ti Panyimpenan objék dibebankeun).

Ngawangun bot Telegram dina Yandex.Cloud

Éta dasarna sadayana aya kana éta Panyimpenan objék. Ayeuna anjeun bakal terang naon anu kudu dilakukeun nalika anjeun ningali ajakan pikeun unggah file di dinya.

Webhook

Ayeuna urang bakal masang webhook - i.e. lamun bot narima apdet (contona, pesen ti pamaké) ti server telegram ka urang Fungsi Yandex pamundut bakal dikirim (kahoyong) kalawan data. Ieu garis anu anjeun tiasa témpélkeun kana kolom alamat browser anjeun teras refresh halamanna (anjeun ngan ukur kedah ngalakukeun ieu sakali): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Urang gé ngaganti {bot_token} mun token kami nampi ti bot ramana nalika nyieun bot kami, jeung {webhook_url} - asup URL urang Fungsi Yandex. Antosan sakedap! Tapi RossKomTsenzur prohibits panyadia di Féderasi Rusia ti ngalayanan alamat https://api.telegram.org. Leres, leres. Tapi datang nepi ka hiji hal. Barina ogé, anjeun tiasa, contona, nanya ka nini anjeun ngeunaan ieu di Ukraina, Israél atawa Kanada - euweuh "Rosskomcensorship" di dinya, sarta Allah ngan weruh kumaha jalma hirup tanpa eta. Hasilna, pamundut-réspon nalika masang webhook kedah sapertos kieu:

Ngawangun bot Telegram dina Yandex.Cloud

Kami nguji. Sakuduna "eunteung".

Ngawangun bot Telegram dina Yandex.Cloud

Ieu leres. ucapan salamet urang - ayeuna Fungsi Yandex geus ngajadi telegram-bot!

Pikiran Pinter

Ayeuna hayu urang ngalakukeun Pikiran Pinter. Kodeu dibuka sareng perenahna GitHub. Éta koméntar lumayan saé sareng panjangna ngan ukur saratus baris. Maca sapertos libretto opera diva!

Ngawangun bot Telegram dina Yandex.Cloud

Klon proyék sareng pasang dependensi:

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

Jieun perobahan nu peryogi kana file indéks.js (opsional; anjeun teu kudu ngarobah nanaon). Nyiptakeun pos-arsip, sareng file indéks.js jeung folder simpul_modul jero, contona, dina ngaran pinter.zip.

Ngawangun bot Telegram dina Yandex.Cloud

Ayeuna buka konsol urang Fungsi Yandex, pilih tab arsip ZIP, pencét tombol Pilih hiji file, sareng unduh arsip kami pinter.zip. Tungtungna, di pojok katuhu luhur, klik tombol Jieun versi.

Ngawangun bot Telegram dina Yandex.Cloud

Dina sababaraha detik, nalika fungsina diropéa, urang bakal nguji bot urang deui. Ayeuna anjeunna henteu deui "eunteung", tapi nganteurkeun pikiran anu pinter!

Ngawangun bot Telegram dina Yandex.Cloud

Sakitu wae kanggo dinten ieu. Langkung seueur artikel nuturkeun. Upami anjeun resep maca ieu, ngalanggan béwara ngeunaan tulisan énggal. Anjeun tiasa ngalanggan di dieu, atanapi di telegram-saluran IT Tutorial Zakharatawa Twitter @mikezaharov.

rujukan

Kodeu dina GitHub
Fungsi Awan Yandex
Panyimpenan Objék Yandex
Bot: Perkenalan pikeun pamekar
Telegram Bot API

Sumbangan

Ngawangun bot Telegram dina Yandex.Cloud

sumber: www.habr.com

Tambahkeun komentar