Cara Membangun Bot Telegram Asas Dengan Python 3

Cara Membangun Bot Telegram Asas Dengan Python 3

Sekiranya anda pengguna Telegram, anda pasti akan melakukan 'perbualan' dengan chatbot pada suatu ketika. Dengan penyesuaian yang luar biasa, bot Telegram menawarkan pelbagai kelebihan --- sama ada untuk mengotomatisasi tugas atau hanya bersenang-senang dengan permainan dalam kumpulan sembang anda.





Walaupun ada yang menganggap mengembangkan bot sebagai tugas yang menakutkan, sebenarnya tidak. Dengan perancangan yang tepat, anda dapat menghidupkan bot Telegram dalam waktu kurang dari satu jam! Inilah cara membuat bot Telegram ringkas yang mengeluarkan gambar kucing internet yang comel apabila diminta.





Bermula

Untuk tutorial ini, kita akan menggunakan Python 3, the python-telegram-bot dan permintaan perpustakaan, dan TheCatAPI .





Setiap bot di Telegram mempunyai token unik yang membantunya berkomunikasi Bot API untuk menggunakan antara muka pesanan aplikasi. Bot API, salah satu ciri Telegram yang paling popular di kalangan pembangun, membolehkan anda menggunakan mesejnya sebagai antara muka.

adakah windows windows 10 saya serasi

Untuk mendapatkan token, mulakan perbualan dengan @BotFather yang, seperti namanya, adalah bot rasmi yang membolehkan anda membuat dan menyesuaikan bot anda sendiri. Anda boleh mengakses bot menggunakan pautan yang diberikan atau mencari '@botfather' di Telegram.



Setelah dalam sembang, buat bot anda dengan mengetik / bot baru arahan. Terus tetapkan nama dan nama pengguna bot anda (kami memutuskan untuk memberikan nama kami @pawsomebot). Setelah ini, anda akan mendapat token yang unik untuk bot anda.

Sekarang kita mempunyai semua prasyarat, sudah tiba masanya untuk sampai ke bahagian yang menarik!





Memasang Perpustakaan

Sekiranya anda menggunakan Windows, buka command prompt dan ketik perintah berikut:

pip install python-telegram-bot
pip install requests

Sekiranya anda menggunakan macOS atau Linux, gunakan perintah berikut di terminal anda. Selain itu di Linux, pastikan anda log masuk sebagai pengguna dengan hak istimewa sudo.





pip3 install python-telegram-bot
pip3 install requests

Menulis Program

Buat folder baru di komputer anda dan buka di editor kegemaran anda. Buat fail baru dan beri nama main.py. Fail ini akan mengandungi kod sumber untuk bot anda.

Sekarang, mari kita mengimport perpustakaan yang kita pasang lebih awal bersama dengan beberapa fungsi bawaannya.

from telegram.ext import Updater, CommandHandler
import requests
import re

Aliran program dari sini adalah untuk mengakses TheCatAPI, mendapatkan URL gambar rawak, dan mengirim gambar itu ke sembang pengguna.

Mari kita mulakan dengan fungsi untuk mendapatkan URL gambar, yang dapat dilakukan dengan menggunakan modul permintaan. Dalam fungsi ini, kami memuat data JSON dari fail rawak yang disediakan oleh TheCatAPI dan mengekstrak URL-nya untuk digunakan kemudian. Untuk melihat format objek JSON, pergi ke https://api.thecatapi.com/v1/images/search pada penyemak imbas anda. Anda akan melihat perkara seperti ini:

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

Perhatikan bahawa objek JSON adalah array yang memegang kamus. Kamus ini mengandungi URL dengan kunci 'url'. Untuk mengekstrak URL, kita perlu merujuk elemen pertama array, dan kemudian kunci yang berkaitan.

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

Selanjutnya, kita perlu menghantar gambar ini ke dalam sembang pengguna. Untuk ini, kami memerlukan URL gambar dan juga ID unik sembang pengguna. Mari buat fungsi pembungkus untuk melakukan ini. Pertama, kita memanggil getUrl () . berfungsi untuk mendapatkan URL gambar rawak --- URL ini berubah setiap kali program anda berulang melalui fungsi.

Ini kemudian diikuti dengan mendapatkan ID sembang pengguna penerima, yang menentukan lokasi sasaran bot untuk pesan dan mengurai URL melalui inbuilt Bot API hantar gambar() fungsi.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Untuk mengetahui lebih lanjut mengenai pelbagai fungsi Bot API dan cara kerjanya, sila lihat Telegram dokumentasi rasmi selepas tutorial ini.

Akhirnya, mari buat fungsi yang mengawal keseluruhan kerja bot. Fungsi ini --- secara konvensional disebut utama () --- adalah tempat kami menghantar permintaan HTTP ke Bot API menggunakan token yang kami peroleh pada awal tutorial dan kemudian menentukan bagaimana interaksi pengguna bot itu. Dalam kes yang semudah kita, ini pada dasarnya bermaksud memulakan bot dan memanggil hantar Imej () berfungsi apabila diminta oleh pengguna.

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Program akhir anda akan kelihatan seperti ini:

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Bot Telegram Anda Sendiri

Tahniah! Anda telah membuat bot penekan tekanan anda sendiri yang menghantar gambar sumber terbuka kucing internet yang lucu apabila diminta. Cuba jalankan program dan taip anda / meow dalam sembang bot anda untuk mengaktifkannya.

Walaupun ini mungkin bot sederhana dengan fungsi terhad, ia menunjukkan betapa kuatnya ekosistem pengembangan bot Telegram. Anda boleh menambah sebilangan subrutin kompleks dan ciri untuk meningkatkan fungsi bot anda - batas langit. Untuk mengetahui lebih lanjut mengenai bot Telegram yang hebat yang telah dibuat oleh penyumbang selama ini, periksa kami senarai bot Telegram yang berguna .

Anda juga boleh menemui pelbagai program berlesen sumber terbuka untuk bot Telegram di platform seperti GitHub. Sebilangan besar lesen sumber terbuka membolehkan anda menggunakan, mengkaji, memuat turun, atau mengubah kod sumber program.

Hos Bot Telegram Anda Dalam Talian

Sekarang bot anda sudah aktif, cuba tutup main.py di PC anda dan gunakan bot pada aplikasi Telegram messenger anda. Adakah ia masih bertindak balas terhadap / meow perintah? Tidak, tidak.

Sebagai pemula, anda mungkin bingung mengapa main.py di PC anda perlu aktif dan aktif apabila anda sudah membuat bot yang berjalan di internet. Sebabnya adalah bahawa program ini menggunakan PC anda sebagai pelayan tempatan untuk menghantar permintaan HTTP ke API yang digunakan dalam program ini.

Oleh yang demikian, harus menjalankan program setiap kali anda ingin menggunakan aplikasi ini tidak dapat dilaksanakan dan tidak mudah. Untuk menyelesaikan masalah ini, kami perlu membuang pergantungan bot pada peranti anda

Salah satu cara untuk melakukannya adalah dengan menggunakan papan litar bercetak (PCB) kos rendah, seperti Raspberry Pi, untuk menyediakan pelayan web anda sendiri dan menggunakannya untuk menjalankan program anda. Ia mempunyai faedah yang sama seperti menjalankan program di PC anda tanpa biaya untuk membuatnya sepanjang hari dan malam kerana PCB cenderung mempunyai kesan tenaga yang jauh lebih rendah.

Sebagai alternatif, anda juga boleh menyebarkan program anda ke awan. Pergi ke platform hosting aplikasi web seperti Heroku, AWS, Google Cloud, atau Microsoft Azure dan pilih langganan yang paling sesuai dengan keperluan anda. Kami mengesyorkan memilih percubaan atau langganan percuma dan meningkatkannya semasa anda meningkatkan skala atau skop program anda.

Berkongsi Berkongsi Tweet E-mel Cara Menghoskan Laman Web Python Anda secara percuma di Heroku

Perlu mengadakan laman web kecil tanpa sebarang kos? Heroku mungkin hanya yang anda cari.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Python
  • Telegram
  • Chatbot
  • Bot Media Sosial
Mengenai Pengarang Yash Chellani(10 Artikel Diterbitkan)

Yash adalah seorang pelajar sains komputer yang bercita-cita tinggi untuk membina sesuatu dan menulis mengenai semua perkara teknologi. Pada masa lapang, dia suka bermain Squash, membaca salinan Murakami terbaru, dan memburu naga di Skyrim.

Lagi Dari Yash Chellani

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan