Nggawe bot Telegram ing Yandex.Cloud

Nggawe bot Telegram ing Yandex.Cloud

Dina iki, saka bahan improvisasi, kita bakal ngumpulake Yandex.Cloud Telegram bot nggunakake Fungsi Yandex Cloud (utawa Fungsi Yandex kanggo ringkes) lan Panyimpenan Obyek Yandex (utawa Panyimpenan Obyek - kanggo kajelasan). Kode bakal urip Node.js. Nanging, ana siji kahanan piquant - organisasi tartamtu disebut, ayo ngomong, RossKomCensorship (censorship dilarang dening artikel 29 saka Konstitusi Federasi Rusia), ora ngidini panyedhiya Internet ing Rusia kanggo nransfer panjalukan kanggo Telegram API menyang alamat: https://api.telegram.org/. Ya, kita ora bakal - ora, ora. Pancen, ing tas kita ana sing diarani. webhooks - karo bantuan, kita ora nggawe panjalukan kanggo alamat tartamtu, nanging mung ngirim panjalukan minangka respon kanggo panjalukan kanggo kita. Sing, kaya ing Odessa - kita njawab pitakonan karo pitakonan. Mulane Telegram API ora bakal katon ing kode kita.

PenafianJeneng-jeneng organisasi negara sing kasebut ing artikel iki fiktif, lan kemungkinan kebetulan karo jeneng organisasi nyata ora sengaja.

Dadi, kita bakal nggawe bot sing bakal menehi kita pikiran sing cerdas. Persis kaya ing gambar:

Nggawe bot Telegram ing Yandex.Cloud

Sampeyan bisa nyoba ing tumindak - iki jeneng: @SmartThoughtsBot. Wigati tombol "Keahlian Alice"? Iki amarga bot minangka "kanca" kanggo eponymous skill Alice, i.e. iku nindakake fungsi sing padha skill Alice lan, mbok menawa, padha bisa coexist tentrem iklan saben liyane. Babagan carane nggawe Katrampilan Pikiran Cerdas diterangake ing artikel Alice entuk katrampilan. Saiki (sawise nggawe sawetara owah-owahan sawise publikasi artikel ndhuwur) ing smartphone iki ketrampilan bakal katon kaya iki:

Nggawe bot Telegram ing Yandex.Cloud

Nggawe bot

Aku pengin tutorial iki migunani kanggo kabeh wong, kalebu. lan pamula "pembangun bot". Mulane, ing bagean iki aku bakal njlèntrèhaké ing sawetara rinci carane nggawe ing umum ing Telegrambot-bot. Kanggo sing ora mbutuhake informasi iki, nerusake menyang bagean sabanjure.

Bukak aplikasi kasebut Telegaram, kita nelpon bapak kabeh bot (padha duwe kabeh kaya wong) - @BotBapak - lan kanggo miwiti, kita bakal menehi wong / bantuan printah kanggo refresh memori kita apa kita bisa nindakake. Saiki kita kasengsem ing tim / newbot.

Nggawe bot Telegram ing Yandex.Cloud

Amarga bot sing diterangake ing kene wis digawe, kanggo tujuan demonstrasi aku bakal nggawe bot liyane kanggo wektu sing cendhak (banjur dakbusak). Aku bakal nelpon dheweke DemoHabrBot. Jeneng (jeneng panganggo) kabeh bot telegram kudu dipungkasi nganggo tembung bot, contone: MyCoolBot utawa my_cool_bot Iki kanggo bot. Nanging dhisik, wenehi jeneng bot kasebut (jeneng) kanggo wong. Jeneng bisa nganggo basa apa wae, ngemot spasi, ora kudu dipungkasi nganggo tembung bot, lan malah ora kudu unik. Ing conto iki, aku nelpon bot iki Demo Habr.

Nggawe bot Telegram ing Yandex.Cloud

Saiki pilih jeneng kanggo bot (jeneng panganggo, sing kanggo bot). Ayo diarani DemoHabrBot. Kabeh sing ana gandhengane karo jeneng bot (jeneng) ora ana hubungane karo jenenge - jeneng panganggo (utawa ditrapake, nanging persis ngelawan). Sawise kasil nggawe jeneng bot unik, kita kudu nyalin lan nyimpen (ing kapercayan sing paling ketat!) Token sing ditampilake ing gambar kanthi panah abang. Kanthi bantuan, kita bakal nginstal sing metu Telegram'webhook kanggo kita Fungsi Yandex.

Nggawe bot Telegram ing Yandex.Cloud

Lan saiki kita bakal menehi prentah marang bapak kabeh bot: /mybotslan bakal nuduhake dhaptar kabeh bot sing wis digawe. Ayo ditinggalake bot sing mentas dipanggang Demo Habr (iki digawe kanggo nuduhake carane nggawe bot, nanging kita bakal nggunakake dina iki kanggo tujuan demonstrasi liyane), lan nimbang bot Pikiran Pinter (@SmartThoughtsBot). Klik tombol kanthi jeneng ing dhaptar bot.

Nggawe bot Telegram ing Yandex.Cloud

Iki ngendi kita bisa nyetel bot kita. Pencet tombol Owahi… kita bakal pindhah menyang editing siji utawa opsi liyane. Contone, kanthi ngeklik tombol Sunting Jeneng kita bisa ngganti jeneng bot, ngandika tinimbang Pikiran Pinter, nulis gagasan edan. Botpic - iki avatar bot, kudu paling 150 x 150 px. Description minangka katrangan singkat sing dideleng pangguna nalika bot diluncurake sapisanan, minangka jawaban kanggo pitakonan: Apa sing bisa ditindakake bot iki? About - katrangan sing luwih cendhek, sing ditularake kanthi pranala menyang bot (https://t.me/SmartThoughtsBot) utawa nalika ndeleng informasi babagan iki.

Nggawe bot Telegram ing Yandex.Cloud

Kita mung kudu nyetel printah. Kanggo nindakake iki, penet tombol Sunting Prentah. Kanggo standarisasi praktik pangguna Telegram nyaranake tansah nggunakake rong printah: / miwiti ΠΈ / nulungi, lan yen bot mbutuhake setelan, prentah tambahan / setelan. Bot kita gampang kaya bal, mula ora butuh setelan apa wae. Kita nulis rong printah pisanan, sing banjur bakal diproses ing kode kasebut. Saiki, yen pangguna ngetik garis miring (karakter miring: /) ing kolom input, dhaptar printah bakal katon kanggo pilihan cepet. Kabeh kaya ing gambar: ing sisih kiwa - kita nyetel printah liwat bot-rama; ing sisih tengen, printah iki wis kasedhiya kanggo pangguna ing bot kita.

Nggawe bot Telegram ing Yandex.Cloud

Fungsi Yandex

Saiki bot kita wis digawe, ayo pindhah menyang Yandex.Cloudkanggo nggawe fungsi sing bakal nglakokakΓ© kode bot kita. Yen sampeyan wis ora kerjo karo Yandex.Cloud maca materi Alice ing tanah Bitrix, banjur - Fungsi Yandex ngirim email. Aku meh yakin yen rong artikel sing relatif cilik iki bakal cukup kanggo sampeyan duwe pangerten dhasar babagan subyek.

Dadi ing console Yandex.Clouds ing menu navigasi kiwa, pilih item kasebut Fungsi Awan, banjur pencet tombol Nggawe fungsi. We menehi jeneng, lan kanggo awake dhewe - gambaran singkat.

Nggawe bot Telegram ing Yandex.Cloud

Sawise pencet tombol nggawe lan sawise sawetara detik, fungsi anyar bakal katon ing dhaptar kabeh fungsi. Klik ing jeneng dheweke - iki bakal nggawa kita menyang kaca Ringkesan fungsi kita. Ing kene sampeyan kudu ngaktifakeOn) ngalih fungsi umumsupaya kasedhiya saka njaba (kanggo Yandex.Clouds) donya, lan regane sawah Link kanggo nelpon ΠΈ Pengenal - tetep rahasia saka kabeh wong kajaba sampeyan dhewe lan Telegram, supaya macem-macem penipu ora bisa nelpon fungsi sampeyan.

Nggawe bot Telegram ing Yandex.Cloud

Saiki nggunakake menu kiwa menyang Ing editor fungsi. Ayo kita sijine aside kanggo wayahe kita Pikiran Pinter, lan nggawe fungsi cithakan minimal kanggo mriksa kinerja bot kita ... Nanging, ing konteks iki, fungsi iki minangka bot kita ... Cekakipun, saiki lan ing kene kita bakal nggawe bot paling gampang sing bakal "mirror" ( yaiku ngirim bali) panjaluk pangguna. Cithakan iki bisa tansah digunakake nalika nggawe bot telegram anyar kanggo mesthekake yen komunikasi karo Telegram'om kerjane apik. Klik Nggawe file, nelpon indeks.js, lan online Editor kode paste kode ing ngisor iki menyang berkas iki:

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

Ing konsol Yandex.Cloud, kudu katon kaya iki:

Nggawe bot Telegram ing Yandex.Cloud

Ing ngisor iki, kita nuduhake titik mlebu - index.botngendi indeks iki jenenge berkas (indeks.js), lan bot - nama fungsi (module.exports.bot). Ninggalake kabeh kolom liyane "kaya", lan ing pojok tengen ndhuwur klik tombol Nggawe Versi. Sawise sawetara detik, versi fungsi iki bakal digawe. Sakcepete sawise tes webhook, kita bakal nggawe versi anyar βˆ’ Pikiran Pinter.

Nggawe bot Telegram ing Yandex.Cloud

Panyimpenan Obyek

Saiki kita wis nyiyapake Fungsi Yandexayo lunga nalika kita lagi ing console Yandex.Clouds, nggawe sing disebut. ember (ember, i.e. bucket ing basa Rusia, ora ateges buket) kanggo nyimpen file gambar sing bakal digunakake ing bot kita Pikiran Pinter. Pilih saka menu navigasi kiwa Panyimpenan obyek, pencet tombol kasebut Nggawe ember, menehi jeneng, contone, img-ember, lan sing paling penting, Maca akses menyang obyek nggawe publik - yen ora Telegram ora bakal weruh gambar kita. Kabeh kolom liyane ora diganti. Kita pencet tombol kasebut Nggawe ember.

Nggawe bot Telegram ing Yandex.Cloud

Sawise iku, dhaptar kabeh ember bisa katon kaya iki (yen iki mung ember sampeyan):

Nggawe bot Telegram ing Yandex.Cloud

Saiki aku ngusulake kanggo ngeklik jeneng ember, lan nggawe folder ing njero kanggo ngatur panyimpenan gambar kanggo macem-macem aplikasi. Contone, kanggo bot telegram Pikiran Pinter Aku nggawe folder sing diarani tg-bot-pinter-pikiran (Ora ana, aku bakal ngerti cipher iki). Nggawe siji uga.

Nggawe bot Telegram ing Yandex.Cloud

Saiki sampeyan bisa ngeklik jeneng folder, mlebu lan upload file:

Nggawe bot Telegram ing Yandex.Cloud

Lan ngeklik jeneng file - entuk URL kanggo digunakake ing bot kita, lan umume - ing ngendi wae (nanging, aja nerbitake iki URL ora perlu, wiwit lalu lintas saka panyimpenan obyek dibebani).

Nggawe bot Telegram ing Yandex.Cloud

Kene, ing kasunyatan, iku kabeh panyimpenan obyek. Saiki sampeyan bakal ngerti apa sing kudu ditindakake nalika ndeleng pituduh kanggo ngunggah file ing kana.

Webhook

Saiki kita bakal nginstal webhook β€” i.e. nalika bot nampa nganyari (contone, pesen saka pangguna), saka server Telegram menyang kita Fungsi Yandex request bakal dikirimNyuwun) kanthi data. Ing ngisor iki ana senar sing sampeyan mung bisa nempelake menyang kolom alamat browser, banjur refresh kaca (mung kudu rampung sapisan): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Ganti wae {bot_token} kanggo token kita ditampa saka bot rama nalika nggawe bot kita, lan {webhook_url} - ing URL kita Fungsi Yandex. Enteni sedhela! Nanging RossKomCensorship nglarang panyedhiya ing Federasi Rusia kanggo ngladeni alamat kasebut https://api.telegram.org. Pancen bener. Nanging sampeyan bisa mikir soko. Sawise kabeh, sampeyan bisa, contone, takon mbah putri ing Ukraina, Israel utawa Kanada - ora ana "censorships Rusia", lan mung Gusti Allah ngerti carane wong urip tanpa iku. AkibatΓ©, panjalukan-respon nalika nginstal webhook kudu katon kaya iki:

Nggawe bot Telegram ing Yandex.Cloud

Testing. Kudu dicerminkan.

Nggawe bot Telegram ing Yandex.Cloud

Iki bener. Sugeng kita - saiki Fungsi Yandex dadi Telegram-bot!

Pikiran Pinter

Lan saiki kita nindakake Pikiran Cerdas. Kode mbukak lan lan dumunung ing GitHub. Dikomentari kanthi apik, lan dawane mung satus baris. Wacanen kaya libretto opera diva!

Nggawe bot Telegram ing Yandex.Cloud

Kloning proyek lan instal dependensi:

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

Gawe owahan sing dibutuhake kanggo file kasebut indeks.js (opsional; sampeyan ora bisa ngganti apa-apa). Nggawe zip-arsip, karo file indeks.js lan folder simpul nang, contone, disebut pinter.zip.

Nggawe bot Telegram ing Yandex.Cloud

Saiki pindhah menyang console kita Fungsi Yandex, pilih tab arsip ZIP, pencet tombol Pilih filelan download arsip kita pinter.zip. Pungkasan, ing pojok tengen ndhuwur, klik tombol kasebut Nggawe Versi.

Nggawe bot Telegram ing Yandex.Cloud

Ing sawetara detik, nalika fungsi dianyari, kita bakal nyoba bot maneh. Saiki dheweke ora "mirror" maneh, nanging ngirim pikiran sing cerdas!

Nggawe bot Telegram ing Yandex.Cloud

Sing kabeh kanggo dina iki. Artikel liyane tindakake. Yen sampeyan kasengsem maca iki, langganan kabar babagan artikel anyar. Sampeyan bisa langganan kene utawa Telegram-saluran Tutorial IT Zakhar, utawa Twitter @mikezaharov.

referensi

Kode ing GitHub
Fungsi Yandex Cloud
Panyimpenan Obyek Yandex
Bot: Pambuka kanggo pangembang
Telegram Bot API

Sumbangan

Nggawe bot Telegram ing Yandex.Cloud

Source: www.habr.com

Add a comment