Dina iki, saka bahan improvisasi, kita bakal ngumpulake 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:
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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:
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.
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.
Sawise iku, dhaptar kabeh ember bisa katon kaya iki (yen iki mung ember sampeyan):
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.
Saiki sampeyan bisa ngeklik jeneng folder, mlebu lan upload file:
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).
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:
Testing. Kudu dicerminkan.
Iki bener. Sugeng kita - saiki Fungsi Yandex dadi Telegram-bot!
Pikiran Pinter
Lan saiki kita nindakake Pikiran Cerdas. Kode mbukak lan lan dumunung ing
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.
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.
Ing sawetara detik, nalika fungsi dianyari, kita bakal nyoba bot maneh. Saiki dheweke ora "mirror" maneh, nanging ngirim pikiran sing cerdas!
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
referensi
Sumbangan
Source: www.habr.com