Hur man bygger en grundläggande telegrambot med Python 3

Hur man bygger en grundläggande telegrambot med Python 3

Om du är en Telegram -användare kommer du säkert att ha haft en 'konversation' med en chatbot någon gång. Med sin fantastiska anpassningsbarhet erbjuder Telegrams bots en mängd fördelar-vare sig det är för att automatisera uppgifter eller bara ha lite kul med spel i din chattgrupp.





Även om vissa kan tycka att det är en skrämmande uppgift att utveckla en bot, så är det verkligen inte det. Med rätt planering kan du ha en Telegram -bot igång på mindre än en timme! Så här skapar du en enkel Telegram -bot som skickar ut söta bilder på internetkatter när du uppmanas.





Komma igång

För denna handledning kommer vi att använda Python 3, python-telegram-bot och förfrågningar bibliotek och TheCatAPI .





Varje bot i Telegram har en unik token som hjälper den att kommunicera med Bot API för att använda appens meddelandegränssnitt. Bot API, en av Telegrams mest populära funktioner bland utvecklare, låter dig använda dess meddelanden som ett gränssnitt.

hur man ansluter xbox -kontrollen till mac

För att få token, starta en konversation med @BotFather som, som namnet antyder, är en officiell bot som låter dig skapa och anpassa dina egna bots. Du kan komma åt boten med den angivna länken eller alternativt söka efter '@botfather' på Telegram.



Väl i chatten skapar du din bot genom att skriva /newbot kommando. Fortsätt att ange namn och användarnamn för din bot (vi bestämde oss för att namnge vår @pawsomebot). Efter detta får du en token unik för din bot.

Nu när vi har alla förutsättningar är det dags att komma till den spännande delen!





Installera bibliotek

Om du använder Windows öppnar du kommandotolken och skriver följande kommandon:

pip install python-telegram-bot
pip install requests

Om du använder macOS eller Linux, använd följande kommandon på din terminal istället. Dessutom i Linux, se till att du är inloggad som en användare med sudo -privilegier.





pip3 install python-telegram-bot
pip3 install requests

Skriva programmet

Skapa en ny mapp på din dator och öppna den i din favoritredigerare. Skapa en ny fil och ge den namnet main.py. Den här filen innehåller källkoden för din bot.

Låt oss nu importera de bibliotek vi installerade tidigare tillsammans med några av deras inbyggda funktioner.

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

Flödet av programmet härifrån är att komma åt TheCatAPI, hämta URL: en för en slumpmässig bild och skicka den bilden till användarens chatt.

Låt oss börja med en funktion för att få bildadressen, som kan göras med hjälp av förfrågningsmodulen. I denna funktion laddar vi JSON -data från en slumpmässig fil från TheCatAPI och extraherar dess URL för senare användning. För att titta på JSON -objektets format, gå till https://api.thecatapi.com/v1/images/search i din webbläsare. Du kommer att märka något så här:

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

Observera att JSON -objektet är en matris som innehåller en ordbok. Denna ordbok innehåller webbadressen med nyckeln 'url'. För att extrahera URL: en måste vi referera till det första elementet i matrisen och sedan till den relevanta nyckeln.

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

Därefter måste vi skicka denna bild till en användares chatt. För detta behöver vi en bild -URL samt ett unikt ID för användarens chatt. Låt oss skapa en omslagsfunktion för att göra detta. Först kallar vi för getUrl () . funktion för att få URL: en för en slumpmässig bild --- denna URL ändras varje gång ditt program iterates genom funktionen.

Detta följs sedan av att få mottagaranvändarens chatt -ID, som definierar botens målplats för meddelanden och analyserar URL: en via Bot API: s inbyggda skicka bild() fungera.

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

För att ta reda på mer om Bot API: s olika inbyggda funktioner och hur de fungerar, kolla gärna in Telegrams officiell dokumentation efter denna handledning.

Slutligen, låt oss skapa en funktion som styr botens övergripande arbete. Denna funktion --- som vanligtvis kallas main () --- är där vi skickar en HTTP-begäran till Bot API med hjälp av token som vi fick i början av självstudien och sedan definierar hur botens användarinteraktion kommer att se ut. I ett så enkelt fall som vårt betyder detta i huvudsak att initiera boten och ringa till sendImage () funktion när den uppmanas av användaren.

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

Ditt sista program bör se ut så här:

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

Din egen Telegram Bot

Grattis! Du har byggt din egen stressavlastande bot som skickar bilder med öppen källkod av de sötaste internetkatterna när de uppmanas. Prova att köra ditt program och skriv /mjau i din bots chatt för att aktivera den.

Även om detta kan vara en enkel bot med begränsad funktionalitet, visar den hur kraftfullt Telegrams botutvecklingsekosystem är. Du kan lägga till valfritt antal komplexa subrutiner och funktioner för att förbättra funktionaliteten hos din bot --- himlen är gränsen. För att ta reda på mer om fantastiska Telegram -bots som bidragsgivare har gjort genom åren, kolla in vår lista över användbara Telegram -bots .

Du kan också hitta en mängd olika open source-licensierade program för Telegram-bots på plattformar som GitHub. De flesta öppen källkodslicenser låter dig använda, studera, ladda ner eller ändra källkoden för ett program.

Värd din Telegram Bot Online

Nu när du har din bot igång kan du försöka stänga main.py på din dator och använda boten på din Telegram messenger -app. Svarar den fortfarande på /mjau kommando? Nej, det gör det inte.

Som nybörjare kan du bli förvirrad om varför main.py på din dator måste vara igång när du redan har skapat en bot som körs på internet. Anledningen till detta är att programmet använder din dator som en lokal server för att skicka HTTP -förfrågningar till API: erna som används i detta program.

Som sådan är det varken genomförbart eller bekvämt att behöva köra programmet varje gång du vill använda appen. För att lösa det här problemet måste vi ta bort botens beroende av din enhet

Ett sätt att göra det är att använda ett billigt kretskort (PCB), till exempel Raspberry Pi, för att skapa en egen webbserver och använda den för att köra ditt program. Det har samma fördelar som att köra programmet på din dator utan kostnader för att hålla det på hela dagen och natten eftersom kretskort tenderar att ha ett betydligt lägre energifotavtryck.

Alternativt kan du också distribuera ditt program till molnet. Gå över till en webbappsplattform som Heroku, AWS, Google Cloud eller Microsoft Azure och välj en prenumeration som passar dina behov bäst. Vi rekommenderar att du väljer en gratis provperiod eller prenumeration och uppgraderar den när du ökar omfattningen eller omfattningen av ditt program.

Dela med sig Dela med sig Tweet E-post Hur du värdar din Python -webbplats gratis på Heroku

Behöver du vara värd för en liten webbplats utan kostnad? Heroku kan vara precis vad du letar efter.

Läs Nästa
Relaterade ämnen
  • Programmering
  • Pytonorm
  • Telegram
  • Chatbot
  • Sociala medier Bots
Om författaren Yash Chellani(10 artiklar publicerade)

Yash är en blivande datavetenskapstudent som älskar att bygga saker och skriva om allt som är tekniskt. På fritiden gillar han att spela Squash, läsa en kopia av den senaste Murakami och jaga drakar i Skyrim.

Mer från Yash Chellani

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera