Sådan opbygges en grundlæggende Telegram Bot med Python 3

Sådan opbygges en grundlæggende Telegram Bot med Python 3

Hvis du er en Telegram -bruger, vil du på et tidspunkt have haft en 'samtale' med en chatbot. Med deres fantastiske tilpasningsevne tilbyder Telegrams bots en række fordele --- det være sig til at automatisere opgaver eller bare have det sjovt med spil i din chatgruppe.





Selvom nogle synes, at det er en skræmmende opgave at udvikle en bot, er det virkelig ikke. Med den rigtige planlægning kan du have en Telegram -bot i gang på mindre end en time! Sådan opretter du en simpel Telegram -bot, der udsender søde billeder af internetkatte, når du bliver bedt om det.





Kom godt i gang

Til denne tutorial vil vi bruge Python 3, the python-telegram-bot og anmodninger bibliotek, og TheCatAPI .





Hver bot i Telegram har et unikt token, der hjælper den med at kommunikere med Bot API for at bruge appens messaging -grænseflade. Bot API, en af ​​Telegrams mest populære funktioner blandt udviklere, giver dig mulighed for at bruge dens meddelelser som en grænseflade.

hvordan man blokerer nogen på ryk

For at få token, start en samtale med @BotFader som, som navnet antyder, er en officiel bot, der lader dig oprette og tilpasse dine egne bots. Du kan få adgang til bot ved hjælp af det givne link eller alternativt søge '@botfather' på Telegram.



Når du er i chatten, skal du oprette din bot ved at skrive /newbot kommando. Fortsæt med at indstille navnet og brugernavnet på din bot (vi besluttede at navngive vores @pawsomebot). Efter dette får du et token, der er unikt for din bot.

Nu hvor vi har alle forudsætninger, er det tid til at komme til den spændende del!





Installation af biblioteker

Hvis du bruger Windows, skal du åbne kommandoprompten og skrive følgende kommandoer:

pip install python-telegram-bot
pip install requests

Hvis du bruger macOS eller Linux, skal du bruge følgende kommandoer på din terminal i stedet. Derudover i Linux, skal du sørge for at være logget ind som en bruger med sudo -rettigheder.





pip3 install python-telegram-bot
pip3 install requests

Skrivning af programmet

Opret en ny mappe på din computer, og åbn den i din foretrukne editor. Opret en ny fil, og navngiv den main.py. Denne fil indeholder kildekoden til din bot.

Lad os nu importere de biblioteker, vi installerede tidligere sammen med nogle af deres indbyggede funktioner.

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

Programmet flyder fra nu af til at få adgang til TheCatAPI, få URL'en til et tilfældigt billede og sende det billede til brugerens chat.

Lad os starte med en funktion for at få billedets URL, som kan gøres ved hjælp af anmodningsmodulet. I denne funktion indlæser vi JSON -dataene fra en tilfældig fil leveret af TheCatAPI og udtrækker dens URL til senere brug. For at se formatet på JSON -objektet skal du gå til https://api.thecatapi.com/v1/images/search i din browser. Du vil bemærke noget som dette:

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

Bemærk, at JSON -objektet er en matrix, der indeholder en ordbog. Denne ordbog indeholder URL'en med nøglen 'url'. For at udtrække URL'en skal vi referere til det første element i arrayet og derefter til den relevante nøgle.

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

Dernæst skal vi sende dette billede til en brugers chat. Til dette har vi brug for en billed -URL samt det unikke id for brugerens chat. Lad os oprette en indpakningsfunktion til at gøre dette. Først kalder vi getUrl () . funktion for at få URL'en til et tilfældigt billede --- denne URL ændres hver gang dit program gentager gennem funktionen.

Dette efterfølges derefter af at modtage modtagerbrugerens chat -id, som definerer botens målplacering for meddelelser og parser URL'en gennem Bot API's indbyggede Send billede() fungere.

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

Hvis du vil vide mere om Bot APIs forskellige indbyggede funktioner og hvordan de fungerer, kan du tjekke Telegrams officiel dokumentation efter denne vejledning.

Lad os endelig oprette en funktion, der styrer botens overordnede arbejde. Denne funktion --- kaldes konventionelt main () --- er, hvor vi sender en HTTP-anmodning til Bot API ved hjælp af det token, vi fik i begyndelsen af ​​selvstudiet og derefter definerer, hvordan botens brugerinteraktion vil se ud. I et så enkelt tilfælde som vores betyder det i det væsentlige at starte botten og ringe til sendImage () funktion, når brugeren beder om det.

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

Dit endelige program skal se sådan ud:

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

Dit eget Telegram Bot

Tillykke! Du har bygget din helt egen stress-lindrende bot, der sender open source-billeder af de sødeste internetkatte, når de bliver bedt om det. Prøv at køre dit program og skriv /meow i din bots chat for at aktivere den.

Selvom dette kan være en simpel bot med begrænset funktionalitet, viser det bare, hvor stærkt Telegrams botudviklingsøkosystem er. Du kan tilføje et vilkårligt antal komplekse underrutiner og funktioner for at forbedre funktionaliteten af ​​din bot --- himlen er grænsen. For at finde ud af mere om fantastiske Telegram -bots, som bidragsydere har lavet gennem årene, kan du tjekke vores liste over nyttige Telegram -bots .

Du kan også finde en række forskellige open source-licenserede programmer til Telegram-bots på platforme som GitHub. De fleste open source-licenser giver dig mulighed for at bruge, studere, downloade eller ændre kildekoden for et program.

Vær din Telegram Bot Online

Nu hvor du har din bot i gang, kan du prøve at lukke main.py på din pc og bruge boten på din Telegram messenger -app. Reagerer den stadig på /meow kommando? Nej, det gør den ikke.

Som nybegynder kan du blive forvirret over, hvorfor main.py på din pc skal være i gang, når du allerede har oprettet en bot, der kører på internettet. Grunden til dette er, at programmet bruger din pc som en lokal server til at sende HTTP -anmodninger til de API'er, der bruges i dette program.

Som sådan er det hverken muligt eller praktisk at skulle køre programmet, hver gang du vil bruge appen. For at løse dette problem skal vi fjerne botens afhængighed af din enhed

En måde at gøre det på er at bruge et billigt printkort (PCB), f.eks. Raspberry Pi, til at oprette din egen webserver og bruge den til at køre dit program. Det har de samme fordele som at køre programmet på din pc uden omkostninger ved at beholde det hele dagen og natten, da PCB'er har en betydelig lavere energifodaftryk.

Alternativt kan du også implementere dit program i skyen. Gå over til en web-app-hostingplatform som Heroku, AWS, Google Cloud eller Microsoft Azure, og vælg et abonnement, der passer bedst til dine behov. Vi anbefaler at vælge en gratis prøveperiode eller et abonnement og opgradere det, efterhånden som du øger omfanget eller omfanget af dit program.

Del Del Tweet E -mail Sådan hoster du dit Python -websted gratis på Heroku

Har du brug for at være vært for et lille websted uden omkostninger? Heroku er måske lige det, du leder efter.

Læs Næste
Relaterede emner
  • Programmering
  • Python
  • Telegram
  • Chatbot
  • Bots på sociale medier
Om forfatteren Yash Chellani(10 artikler udgivet)

Yash er en håbefuld datalogistuderende, der elsker at bygge ting og skrive om alt teknisk. I fritiden kan han lide at spille Squash, læse en kopi af den nyeste Murakami og jage drager i Skyrim.

Mere fra Yash Chellani

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere