Cum să construiești un bot de bază pentru telegramă cu Python 3

Cum să construiești un bot de bază pentru telegramă cu Python 3

Dacă sunteți utilizator Telegram, va trebui să fi avut o conversație cu un chatbot la un moment dat. Datorită personalizării lor uimitoare, roboții Telegram oferă o varietate de avantaje - fie pentru automatizarea sarcinilor, fie doar pentru a vă distra puțin cu jocurile din grupul dvs. de chat.





Deși unii consideră că dezvoltarea unui bot este o sarcină descurajantă, chiar nu este. Cu o planificare potrivită, puteți avea un bot Telegram funcțional și mai puțin de o oră! Iată cum să creați un bot Telegram simplu care să afișeze imagini drăguțe ale pisicilor pe internet atunci când vi se solicită.





Noțiuni de bază

Pentru acest tutorial, vom folosi Python 3, python-telegram-bot și solicitări bibliotecă și Catapi .





Fiecare bot din Telegram are un simbol unic care îl ajută să comunice cu API-ul Bot pentru a utiliza interfața de mesagerie a aplicației. API-ul Bot, una dintre cele mai populare caracteristici ale Telegramului printre dezvoltatori, vă permite să utilizați mesajele sale ca o interfață.

cum te conectezi la rețeaua PlayStation?

Pentru a obține simbolul, începeți o conversație cu @BotFather care, după cum sugerează și numele, este un bot oficial care vă permite să creați și să vă personalizați proprii roboți. Puteți accesa botul utilizând linkul dat sau, alternativ, să căutați „@botfather” pe Telegram.



Odată ajuns în chat, creați-vă botul tastând / newbot comanda. Continuați să setați numele și numele de utilizator al robotului dvs. (am decis să îl numim pe al nostru @pawsomebot). După aceasta, veți obține un simbol unic pentru botul dvs.

Acum, că avem toate premisele, este timpul să ajungem la partea interesantă!





Instalarea bibliotecilor

Dacă utilizați Windows, deschideți promptul de comandă și tastați următoarele comenzi:

pip install python-telegram-bot
pip install requests

Dacă utilizați macOS sau Linux, utilizați următoarele comenzi pe terminalul dvs. În plus, în Linux, asigurați-vă că sunteți conectat ca utilizator cu privilegii sudo.





pip3 install python-telegram-bot
pip3 install requests

Scrierea programului

Creați un folder nou pe computer și deschideți-l în editorul preferat. Creați un fișier nou și denumiți-l main.py. Acest fișier va conține codul sursă pentru botul dvs.

Acum, să importăm bibliotecile pe care le-am instalat mai devreme, împreună cu unele dintre funcțiile lor încorporate.

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

Fluxul programului de aici înainte este de a accesa TheCatAPI, de a obține adresa URL a unei imagini aleatorii și de a trimite acea imagine în chat-ul utilizatorului.

Să începem cu o funcție pentru a obține adresa URL a imaginii, care poate fi realizată folosind modulul de solicitări. În această funcție, încărcăm datele JSON ale unui fișier aleatoriu furnizat de TheCatAPI și extragem adresa URL pentru a le utiliza ulterior. Pentru a privi formatul obiectului JSON, mergeți la https://api.thecatapi.com/v1/images/search pe browserul dvs. Veți observa așa ceva:

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

Observați că obiectul JSON este un tablou care conține un dicționar. Acest dicționar conține adresa URL cu cheia „url”. Pentru a extrage adresa URL, trebuie să facem referire la primul element al matricei, apoi la cheia relevantă.

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

În continuare, trebuie să trimitem această imagine în chat-ul unui utilizator. Pentru aceasta, avem nevoie de o adresă URL a imaginii, precum și de ID-ul unic al chatului utilizatorului. Să creăm o funcție de împachetare pentru a face acest lucru. Mai întâi, numim getUrl () . funcție pentru a obține adresa URL a unei imagini aleatoare --- această adresă URL se modifică de fiecare dată când programul dvs. iterează prin funcție.

Acesta este apoi urmat de obținerea ID-ului de chat al utilizatorului destinatar, care definește locația țintă a botului pentru mesaje și analizează adresa URL prin intermediul API-ului încorporat al Bot. Trimite fotografie() funcţie.

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

Pentru a afla mai multe despre diversele funcții încorporate ale API-ului Bot și despre cum funcționează, nu ezitați să consultați Telegram’s documentație oficială după acest tutorial.

În cele din urmă, să creăm o funcție care controlează funcționarea generală a robotului. Această funcție --- numită în mod convențional main () --- este locul în care trimitem o cerere HTTP către API-ul Bot utilizând simbolul pe care l-am obținut la începutul tutorialului și apoi definim cum va fi interacțiunea utilizatorului botului. Într-un caz la fel de simplu ca al nostru, aceasta înseamnă în esență inițierea botului și apelarea sendImage () funcția la solicitarea utilizatorului.

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()

Programul dvs. final ar trebui să arate astfel:

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()

Propriul dvs. bot de telegramă

Felicitări! Ți-ai construit propriul bot care ameliorează stresul, care trimite imagini open-source cu cele mai drăguțe pisici de pe internet după ce ți se solicită. Încercați să rulați programul și tastați /miau în chat-ul robotului dvs. pentru ao activa.

Deși acesta poate fi un bot simplu cu funcționalități limitate, acesta arată cât de puternic este ecosistemul de dezvoltare al botului Telegram. Puteți adăuga în orice număr de subrutine și caracteristici complexe pentru a îmbunătăți funcționalitatea botului dvs. - cerul este limita. Pentru a afla mai multe despre roboții fantastici Telegram pe care contribuitorii i-au făcut de-a lungul anilor, consultați lista de roboți Telegram utili .

De asemenea, puteți găsi o varietate de programe licențiate open-source pentru roboții Telegram pe platforme precum GitHub. Majoritatea licențelor open-source vă permit să utilizați, să studiați, să descărcați sau să modificați codul sursă al unui program.

Găzduiește-ți botul online Telegram

Acum, că aveți botul în funcțiune, încercați să închideți main.py de pe computer și să utilizați botul din aplicația de mesagerie Telegram. Răspunde în continuare la /miau comanda? Nu, nu.

Ca începător, este posibil să fiți confuz cu privire la motivul pentru care main.py de pe computerul dvs. trebuie să fie funcțional când ați creat deja un bot care rulează pe internet. Motivul pentru aceasta este că programul folosește computerul ca server local pentru a trimite cereri HTTP către API-urile utilizate în acest program.

Ca atare, a fi necesar să rulați programul de fiecare dată când doriți să utilizați aplicația nu este nici fezabil, nici convenabil. Pentru a rezolva această problemă, trebuie să eliminăm dependența robotului de dispozitivul dvs.

O modalitate de a face acest lucru este să utilizați o placă de circuite imprimate (PCB) cu costuri reduse, cum ar fi Raspberry Pi, pentru a vă configura propriul server web și a-l utiliza pentru a rula programul. Are aceleași beneficii ca și rularea programului pe computer, fără costurile de menținere a acestuia pe zi și noapte, deoarece PCB-urile tind să aibă o amprentă energetică semnificativ mai mică.

Alternativ, puteți, de asemenea, să implementați programul în cloud. Accesați o platformă de găzduire a aplicațiilor web, cum ar fi Heroku, AWS, Google Cloud sau Microsoft Azure și alegeți un abonament care se potrivește cel mai bine nevoilor dvs. Vă recomandăm să alegeți o perioadă de încercare gratuită sau un abonament și să o actualizați pe măsură ce creșteți scala sau domeniul de aplicare al programului dvs.

Acțiune Acțiune Tweet E-mail Cum să vă găzduiți site-ul Python gratuit pe Heroku

Aveți nevoie să găzduiți un site mic, gratuit? Heroku ar putea fi exact ceea ce căutați.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Piton
  • Telegramă
  • Chatbot
  • Roboți pentru rețelele sociale
Despre autor Yash Chellani(10 articole publicate)

Yash este un student aspirant la informatică, căruia îi place să construiască lucruri și să scrie despre toate lucrurile tehnologice. În timpul liber, îi place să joace Squash, să citească o copie a ultimului Murakami și să vâneze dragoni în Skyrim.

Mai multe de la Yash Chellani

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona