Kuidas luua Pythoniga 3 põhilist telegrammibotti

Kuidas luua Pythoniga 3 põhilist telegrammibotti

Kui olete telegrammi kasutaja, peate kindlasti mingil hetkel vestlema vestlusbotiga. Oma hämmastava kohandatavusega pakuvad Telegrami robotid mitmesuguseid eeliseid-olgu selleks siis ülesannete automatiseerimine või lihtsalt vestlusgrupis mängude nautimine.





Kuigi mõned võivad robotite arendamist hirmutavaks ülesandeks pidada, pole see tegelikult nii. Õige planeerimisega saate Telegrami bot vähem kui tunni pärast tööle panna! Siit saate teada, kuidas luua lihtne telegrammibot, mis väljastab küsimisel armasid pilte internetikassidest.





Alustamine

Selle õpetuse jaoks kasutame Python 3 python-telegramm-bot ja taotlusi raamatukogu ja TheCatAPI .





Igal Telegrami robotil on ainulaadne märk, mis aitab tal suhelda Bot API rakenduse sõnumiliidese kasutamiseks. Bot API, üks Telegrami populaarsemaid funktsioone arendajate seas, võimaldab teil selle sõnumeid liidesena kasutada.

mida rng tähendab mängudes

Märgi saamiseks alustage vestlust @BotFather mis, nagu nimigi ütleb, on ametlik robot, mis võimaldab teil oma roboteid luua ja kohandada. Robotile pääsete juurde antud lingi abil või otsige telegrammist otsingut „@botfather”.



Vestluses olles looge oma robot, tippides /newbot käsk. Jätkake oma roboti nime ja kasutajanime määramist (otsustasime panna oma nimeks @pawsomebot). Pärast seda saate oma botile ainulaadse märgi.

Nüüd, kui meil on kõik eeldused olemas, on aeg asuda põneva osa juurde!





Raamatukogude installimine

Kui kasutate Windowsi, avage käsuviip ja tippige järgmised käsud:

pip install python-telegram-bot
pip install requests

Kui kasutate macOS -i või Linuxit, kasutage selle asemel oma terminalis järgmisi käske. Lisaks Linuxis veenduge, et olete sisse logitud sudo -õigustega kasutajana.





pip3 install python-telegram-bot
pip3 install requests

Programmi kirjutamine

Looge oma arvutis uus kaust ja avage see oma lemmikredaktoris. Looge uus fail ja pange sellele nimi main.py. See fail sisaldab teie roboti lähtekoodi.

Nüüd impordime varem installitud teegid koos nende sisseehitatud funktsioonidega.

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

Siit edasi on programmi voog juurdepääs TheCatAPI -le, juhusliku pildi URL -i hankimine ja selle pildi saatmine kasutaja vestlusesse.

Alustame pildi URL -i hankimise funktsiooniga, mida saab teha päringumooduli abil. Selle funktsiooni korral laadime TheCatAPI pakutava juhusliku faili JSON -andmed ja ekstraheerime selle URL -i hilisemaks kasutamiseks. JSON -objekti vormingu vaatamiseks minge lehele https://api.thecatapi.com/v1/images/search brauseris. Te märkate midagi sellist:

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

Pange tähele, et JSON -objekt on massiiv, mis sisaldab sõnaraamatut. See sõnastik sisaldab URL -i võtmega „url”. URL -i eraldamiseks peame viitama massiivi esimesele elemendile ja seejärel vastavale võtmele.

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

Järgmisena peame selle pildi saatma kasutaja vestlusesse. Selleks vajame pildi URL -i ja kasutaja vestluse kordumatut ID -d. Loome selle jaoks ümbrisfunktsiooni. Esiteks kutsume getUrl () . funktsiooni juhusliku pildi URL-i saamiseks --- see URL muutub iga kord, kui teie programm funktsiooni läbi kordab.

Sellele järgneb vastuvõtva kasutaja vestluse ID hankimine, mis määrab sõnumite jaoks sihtmärgi asukoha ja URL -i sõelumise Bot API sisseehitatud kaudu saada foto() funktsiooni.

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

Bot API erinevate sisseehitatud funktsioonide ja nende toimimise kohta lisateabe saamiseks vaadake julgelt Telegrami ametlik dokumentatsioon pärast seda õpetust.

Lõpuks loome funktsiooni, mis kontrollib roboti üldist tööd. See funktsioon --- tavapäraselt nimetatakse main () --- on see koht, kus me saadame HTTP-päringu Bot API-le, kasutades õpetuse alguses saadud märki ja seejärel määratleme, milline saab olema roboti kasutaja suhtlus. Meie jaoks nii lihtsal juhul tähendab see sisuliselt boti käivitamist ja sendImage () funktsioon, kui kasutaja seda palub.

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

Teie viimane programm peaks välja nägema selline:

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

Teie enda telegrammi robot

Palju õnne! Olete loonud oma stressi maandava roboti, mis saadab küsimisel avatud lähtekoodiga pilte kõige armsamatest internetikassidest. Proovige oma programm käivitada ja tippige /Mjäu oma bot'i vestluses selle aktiveerimiseks.

Kuigi see võib olla lihtne piiratud funktsionaalsusega robot, näitab see, kui võimas on Telegrami robotite arendamise ökosüsteem. Saate oma robotite funktsionaalsuse parandamiseks lisada suvalise hulga keerulisi alamprogramme ja funktsioone-taevas on piir. Lisateabe saamiseks toredate Telegrami robotite kohta, mida kaastöötajad on aastate jooksul teinud, vaadake meie kasulike telegrammirobotite loend .

Samuti leiate mitmesuguseid avatud lähtekoodiga litsentsitud programme Telegrami robotite jaoks sellistel platvormidel nagu GitHub. Enamik avatud lähtekoodiga litsentse võimaldab teil programmi lähtekoodi kasutada, uurida, alla laadida või muuta.

Hostige oma telegrammibotti võrgus

Nüüd, kui olete oma bot valmis saanud, proovige oma arvutis main.py sulgeda ja kasutage robotit oma Telegrami sõnumirakenduses. Kas see reageerib endiselt /Mjäu käsk? Ei, seda ei tehta.

Algajana võite end segadusse ajada, miks peab main.py teie arvutis töötama, kui olete juba loonud Internetis töötava roboti. Selle põhjuseks on asjaolu, et programm kasutab teie arvutit kohaliku serverina, et saata HTTP -päringuid selles programmis kasutatavatele API -dele.

Seetõttu ei ole programmi käivitamine iga kord, kui soovite rakendust kasutada, teostatav ega mugav. Selle probleemi lahendamiseks peame eemaldama roboti sõltuvuse teie seadmest

Üks võimalus seda teha on kasutada odavat trükkplaati (PCB), näiteks Raspberry Pi, et luua oma veebiserver ja kasutada seda oma programmi käivitamiseks. Sellel on samad eelised kui programmi käivitamisel arvutis ilma kuludeta, et seda kogu päeva ja öö sees hoida, kuna trükkplaatide energia jalajälg on tavaliselt väiksem.

Teise võimalusena saate oma programmi ka pilve juurutada. Minge veebirakenduste hostimisplatvormile, nagu Heroku, AWS, Google Cloud või Microsoft Azure, ja valige teie vajadustele kõige sobivam tellimus. Soovitame valida tasuta prooviperioodi või tellimuse ja uuendada seda, kui suurendate oma programmi ulatust või ulatust.

Jaga Jaga Piiksuma E -post Kuidas hostida oma Pythoni veebisaiti Herokul tasuta

Kas soovite tasuta majutada väikest veebisaiti? Heroku võib olla just see, mida otsite.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Python
  • Telegramm
  • Chatbot
  • Sotsiaalmeedia robotid
Autori kohta Yash Chellani(10 artiklit avaldatud)

Yash on ambitsioonikas informaatikatudeng, kellele meeldib asju ehitada ja kõigest tehnikast kirjutada. Vabal ajal meeldib talle Squashi mängida, lugeda viimast Murakami koopiat ja jahtida Skyrimis draakoneid.

Veel Yash Chellanilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin