Kako zgraditi osnovnega telegramskega robota s Pythonom 3

Kako zgraditi osnovnega telegramskega robota s Pythonom 3

Če ste uporabnik Telegrama, ste v nekem trenutku zagotovo imeli 'pogovor' s klepetalnico. Telegramovi roboti s svojo neverjetno prilagodljivostjo ponujajo različne prednosti-pa naj gre za avtomatizacijo opravil ali pa samo zabavo z igrami v vaši skupini za klepet.





Čeprav se nekaterim zdi razvoj bota zastrašujoča naloga, v resnici ni. S pravilnim načrtovanjem lahko Telegram bot zaženete in zaženete v manj kot eni uri! Evo, kako ustvariti preprostega Telegram bota, ki ob pozivu prikaže srčkane slike internetnih mačk.





Začetek

Za to vadbo bomo uporabili Python 3, python-telegram-bot in zahteve knjižnica in TheCatAPI .





Vsak bot v Telegramu ima edinstven žeton, s katerim lahko komunicira Bot API za uporabo vmesnika za sporočila aplikacije. Bot API, ena izmed najbolj priljubljenih funkcij Telegrama med razvijalci, omogoča uporabo njegovih sporočil kot vmesnika.

kako odstraniti vodni žig s fotografije

Če želite dobiti žeton, začnite pogovor z @BotFather ki je, kot že ime pove, uradni bot, ki vam omogoča ustvarjanje in prilagajanje lastnih botov. Do bot lahko dostopate prek dane povezave ali pa v Telegramu poiščete '@botfather'.



Ko ste v klepetu, ustvarite bota tako, da vnesete /newbot ukaz. Nadaljujte z nastavljanjem imena in uporabniškega imena vašega bota (odločili smo se poimenovati našega @pawsomebot). Po tem boste prejeli žeton, ki je edinstven za vašega bota.

Zdaj, ko imamo vse predpogoje, je čas, da preidemo na razburljiv del!





Namestitev knjižnic

Če uporabljate Windows, odprite ukazni poziv in vnesite naslednje ukaze:

pip install python-telegram-bot
pip install requests

Če uporabljate macOS ali Linux, namesto tega uporabite naslednje ukaze na svojem terminalu. Poleg tega se v Linuxu prepričajte, da ste prijavljeni kot uporabnik s privilegiji sudo.





pip3 install python-telegram-bot
pip3 install requests

Pisanje programa

Ustvarite novo mapo v računalniku in jo odprite v svojem najljubšem urejevalniku. Ustvarite novo datoteko in jo poimenujte main.py. Ta datoteka bo vsebovala izvorno kodo vašega bota.

Zdaj pa uvozimo knjižnice, ki smo jih namestili prej, skupaj z nekaterimi njihovimi vgrajenimi funkcijami.

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

Potek programa od zdaj naprej je dostop do TheCatAPI, pridobitev URL -ja naključne slike in pošiljanje te slike v uporabnikov klepet.

Začnimo s funkcijo za pridobitev URL -ja slike, kar lahko storite s pomočjo modula za zahteve. V tej funkciji naložimo podatke JSON naključne datoteke, ki jo posreduje TheCatAPI, in izvlečemo njen URL za kasnejšo uporabo. Če si želite ogledati obliko predmeta JSON, pojdite na https://api.thecatapi.com/v1/images/search v brskalniku. Opazili boste nekaj takega:

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

Upoštevajte, da je objekt JSON matrika, ki vsebuje slovar. Ta slovar vsebuje URL s ključem 'url'. Če želimo izvleči URL, se moramo sklicevati na prvi element matrike in nato na ustrezen 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

Nato moramo to sliko poslati v uporabnikov klepet. Za to potrebujemo URL slike in edinstven ID uporabnikovega klepeta. Ustvarimo funkcijo ovoja za to. Najprej pokličemo getUrl () . funkcijo za pridobitev URL-ja naključne slike --- ta URL se spremeni vsakič, ko program ponovi po funkciji.

Nato sledi pridobitev ID -ja klepeta uporabnika prejemnika, ki opredeljuje ciljno lokacijo bota za sporočila in razčlenitev URL -ja prek vgrajenega API -ja Bot Poslati sliko() funkcijo.

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

Če želite izvedeti več o različnih vgrajenih funkcijah Bot API -ja in njihovem delovanju, si oglejte Telegramove uradna dokumentacija po tej vadnici.

Na koncu ustvarimo funkcijo, ki nadzoruje celotno delovanje bota. Ta funkcija --- običajno imenovana main () --- je, kjer pošljemo zahtevo HTTP Bot API-ju z žetonom, ki smo ga dobili na začetku vadnice, nato pa določimo, kakšna bo interakcija uporabnika z botom. V tako preprostem primeru, kot je naš, to v bistvu pomeni sprožitev bota in klicanje sendImage () funkcijo na poziv uporabnika.

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

Končni program bi moral izgledati tako:

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š lastni telegram bot

Čestitamo! Zgradili ste svojega lastnega bota za lajšanje stresa, ki po pozivu pošilja odprtokodne slike najljubših internetnih mačk. Poskusite zagnati program in vnesite /mijav v klepetu svojega bota, da ga aktivirate.

Čeprav je to lahko preprost bot z omejeno funkcionalnostjo, prikazuje, kako močan je ekosistem za razvoj botov Telegram. Dodate lahko poljubno število zapletenih podprogramov in funkcij, da izboljšate funkcionalnost svojega bota-nebo je meja. Če želite izvedeti več o odličnih robotih Telegram, ki so jih sodelavci naredili v preteklih letih, si oglejte našo seznam uporabnih robotov Telegram .

Na platformah, kot je GitHub, lahko najdete tudi različne odprtokodne licenčne programe za robote Telegram. Večina odprtokodnih licenc vam omogoča uporabo, študij, prenos ali spreminjanje izvorne kode programa.

Gostite svoj Telegram Bot na spletu

Zdaj, ko je bot zagnan, poskusite zapreti main.py v računalniku in ga uporabiti v aplikaciji Messenger za Telegram. Ali se še vedno odziva na /mijav ukaz? Ne, ne gre.

Kot začetnik boste morda zmedeni, zakaj mora biti main.py v vašem računalniku zagnan, ko ste že ustvarili bot, ki deluje v internetu. Razlog za to je, da program uporablja vaš računalnik kot lokalni strežnik za pošiljanje zahtev HTTP API -jem, ki se uporabljajo v tem programu.

Tako, da morate zagnati program vsakič, ko želite uporabljati aplikacijo, ni niti izvedljivo niti priročno. Če želimo rešiti to težavo, moramo odstraniti odvisnost bota od vaše naprave

Eden od načinov za to je uporaba nizkocenovnih tiskanih vezij (PCB), na primer Raspberry Pi, za nastavitev lastnega spletnega strežnika in uporabo z njim za zagon programa. Ima enake prednosti kot izvajanje programa na osebnem računalniku, ne da bi ga morali vzdrževati ves dan in noč, saj imajo PCB -ji znatno nižji energijski odtis.

Druga možnost je, da svoj program uvedete tudi v oblak. Pojdite na platformo za gostovanje spletnih aplikacij, kot so Heroku, AWS, Google Cloud ali Microsoft Azure in izberite naročnino, ki najbolje ustreza vašim potrebam. Priporočamo, da izberete brezplačno preskusno različico ali naročnino in jo nadgradite, ko povečate obseg ali obseg svojega programa.

Deliti Deliti Cvrkutati E-naslov Kako brezplačno gostiti svojo spletno stran Python na Heroku

Morate brezplačno gostiti majhno spletno mesto? Heroku je morda ravno tisto, kar iščete.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Python
  • Telegram
  • Chatbot
  • Boti za družabne medije
O avtorju Yash Chellani(10 objavljenih člankov)

Yash je ambiciozen študent računalništva, ki rad gradi stvari in piše o vseh stvareh tehnologije. V prostem času se rad igra Squash, bere kopijo najnovejšega Murakamija in lovi zmaje v Skyrimu.

Več od Yash Chellani

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti