Kako izgraditi osnovni telegram bot s Pythonom 3

Kako izgraditi osnovni telegram bot s Pythonom 3

Ako ste korisnik Telegrama, sigurno ste u nekom trenutku imali 'razgovor' s chatbotom. Svojom nevjerojatnom prilagodljivošću, Telegramovi botovi nude niz prednosti --- bilo da se radi o automatizaciji zadataka ili samo zabavi uz igre u vašoj chat grupi.





Iako će neki smatrati da je razvoj bota zastrašujući zadatak, to uistinu nije tako. Uz pravilno planiranje, Telegram bot možete pokrenuti za manje od sat vremena! Evo kako stvoriti jednostavnog Telegram robota koji na upit prikazuje slatke slike internetskih mačaka.





Početak rada

Za ovaj vodič koristit ćemo Python 3, python-telegram-bot i zahtjevi knjižnica, i TheCatAPI .





Svaki bot u Telegramu ima jedinstveni token koji mu pomaže u komunikaciji Bot API kako biste koristili sučelje za razmjenu poruka aplikacije. Bot API, jedna od najpopularnijih značajki Telegrama među programerima, omogućuje vam da njegove poruke koristite kao sučelje.

na pola puta između dvije adrese

Da biste dobili žeton, započnite razgovor s @BotFather koji je, kao što naziv govori, službeni bot koji vam omogućuje stvaranje i prilagodbu vlastitih robota. Botu možete pristupiti putem navedene veze ili alternativno pretraživati ​​'@botfather' na Telegramu.



Kad ste u chatu, stvorite svog bota upisivanjem /newbot naredba. Nastavite postavljati ime i korisničko ime vašeg bota (odlučili smo nazvati našeg @pawsomebot). Nakon toga dobit ćete žeton jedinstven za vašeg bota.

Sada kada imamo sve preduvjete, vrijeme je da prijeđemo na uzbudljivi dio!





Instaliranje knjižnica

Ako koristite Windows, otvorite naredbeni redak i upišite sljedeće naredbe:

pip install python-telegram-bot
pip install requests

Ako koristite macOS ili Linux, umjesto toga upotrijebite sljedeće naredbe na svom terminalu. Osim toga, u Linuxu provjerite jeste li prijavljeni kao korisnik sa sudo privilegijama.





pip3 install python-telegram-bot
pip3 install requests

Pisanje programa

Na svom računalu stvorite novu mapu i otvorite je u svom omiljenom uređivaču. Izradite novu datoteku i dajte joj ime main.py. Ova će datoteka sadržavati izvorni kôd vašeg bota.

Uvezimo sada knjižnice koje smo ranije instalirali zajedno s nekim od njihovih ugrađenih funkcija.

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

Od sada nadalje program slijedi pristup TheCatAPI -u, dobivanje URL -a slučajne slike i slanje te slike u korisnički chat.

Počnimo s funkcijom za dobivanje URL -a slike, što se može učiniti pomoću modula zahtjeva. U ovoj funkciji učitavamo JSON podatke slučajne datoteke koju pruža TheCatAPI i izdvajamo njezin URL za kasniju upotrebu. Da biste pogledali format JSON objekta, prijeđite na https://api.thecatapi.com/v1/images/search u vašem pregledniku. Primijetit ćete ovako nešto:

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

Primijetite da je objekt JSON niz koji sadrži rječnik. Ovaj rječnik sadrži URL s ključem 'url'. Da bismo izdvojili URL, moramo se pozvati na prvi element niza, a zatim na odgovarajući ključ.

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

Sljedeće, moramo poslati ovu sliku u korisnički chat. Za to nam je potreban URL slike, kao i jedinstveni ID korisničkog chata. Za to napravimo funkciju omotača. Prvo, nazivamo getUrl () . funkcija za dobivanje URL-a nasumične slike --- ovaj se URL mijenja svaki put kad vaš program ponavlja ovu funkciju.

Nakon toga slijedi dobivanje ID -a korisnika primatelja, koji definira ciljno mjesto bota za poruke i raščlanjivanje URL -a putem ugrađenog Bot API -ja poslati fotografiju() funkcija.

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

Da biste saznali više o raznim ugrađenim funkcijama Bot API -ja i njihovom radu, slobodno provjerite Telegramove službena dokumentacija nakon ovog vodiča.

Na kraju, stvorimo funkciju koja kontrolira cjelokupni rad bota. Ova funkcija --- konvencionalno nazvana main () --- je mjesto gdje šaljemo HTTP zahtjev Bot API-ju pomoću tokena koji smo dobili na početku vodiča, a zatim definiramo kakva će biti interakcija korisnika s botom. U tako jednostavnom slučaju kao što je naš, to u biti znači pokretanje robota i pozivanje sendImage () funkciju na zahtjev korisnika.

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

Vaš konačni program trebao bi izgledati ovako:

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

Vaš vlastiti telegram bot

Čestitamo! Izradili ste vlastitog bot-a za ublažavanje stresa koji šalje slike otvorenih kodova najslađih internetskih mačaka nakon upita. Pokušajte pokrenuti program i upišite /Mijau u chatu vašeg bota kako biste ga aktivirali.

Iako je ovo možda jednostavan bot s ograničenom funkcionalnošću, on pokazuje koliko je snažan ekosistem za razvoj robota Telegrama. Možete dodati bilo koji broj složenih potprograma i značajki za poboljšanje funkcionalnosti vašeg bota --- nebo je granica. Da biste saznali više o sjajnim Telegram robotima koje su suradnici stvarali godinama, pogledajte naše popis korisnih Telegram botova .

Na platformama kao što je GitHub možete pronaći i razne licencirane programe otvorenog koda za Telegram botove. Većina licenci otvorenog koda omogućuje vam korištenje, proučavanje, preuzimanje ili izmjenu izvornog koda programa.

Ugostite svoj Telegram Bot na mreži

Sada kada je vaš bot pokrenut i pokrenite, pokušajte zatvoriti main.py na svom računalu i upotrijebite bot u aplikaciji Messenger Messenger. Odgovara li još uvijek na /Mijau naredba? Ne, nije.

Kao početnik, možda ćete biti zbunjeni zašto main.py na vašem računalu mora biti pokrenut kada ste već stvorili bot koji radi na internetu. Razlog tome je što program koristi vaše računalo kao lokalni poslužitelj za slanje HTTP zahtjeva API -ima koji se koriste u ovom programu.

Zbog toga nije potrebno niti pokretati program svaki put kada želite koristiti aplikaciju. Kako bismo riješili ovaj problem, moramo ukloniti ovisnost bota o vašem uređaju

Jedan od načina za to je korištenje jeftine tiskane pločice (PCB), poput Raspberry Pi, za postavljanje vlastitog web poslužitelja i njegovo korištenje za pokretanje programa. Ima iste prednosti kao i pokretanje programa na vašem računalu bez troškova održavanja cijelog dana i noći jer PCB -i imaju značajno niži energetski trag.

Alternativno, svoj program možete postaviti i u oblak. Prijeđite na platformu za hosting web-aplikacija kao što su Heroku, AWS, Google Cloud ili Microsoft Azure i odaberite pretplatu koja najbolje odgovara vašim potrebama. Preporučujemo da odaberete besplatnu probnu verziju ili pretplatu i nadogradite je kako povećavate opseg ili opseg svog programa.

Udio Udio Cvrkut E -pošta Kako besplatno ugostiti svoju Python web stranicu na Herokuu

Trebate hostirati malu web stranicu bez ikakvih troškova? Heroku je možda upravo ono što tražite.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Piton
  • Telegram
  • Chatbot
  • Botovi za društvene mreže
O autoru Yash Chellani(10 objavljenih članaka)

Yash je ambiciozni student informatike koji voli graditi stvari i pisati o svim stvarima tehnologije. U slobodno vrijeme voli igrati skvoš, čitati primjerak najnovijeg Murakamija i loviti zmajeve u Skyrimu.

Više od Yash Chellanija

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu