Come costruire un bot di Telegram di base con Python 3

Come costruire un bot di Telegram di base con Python 3

Se sei un utente di Telegram, a un certo punto avrai sicuramente avuto una 'conversazione' con un chatbot. Con la loro straordinaria personalizzazione, i bot di Telegram offrono una varietà di vantaggi, che si tratti di automatizzare le attività o semplicemente di divertirsi un po' con i giochi nel tuo gruppo di chat.





Mentre alcuni potrebbero trovare lo sviluppo di un bot un compito arduo, in realtà non lo è. Con la giusta pianificazione, puoi avere un bot di Telegram attivo e funzionante in meno di un'ora! Ecco come creare un semplice bot di Telegram che emette immagini carine di gatti su Internet quando richiesto.





Iniziare

Per questo tutorial, useremo Python 3, il python-telegram-bot e richieste biblioteca, e TheCatAPI .





Ogni bot in Telegram ha un token unico che lo aiuta a comunicare con API del bot per utilizzare l'interfaccia di messaggistica dell'app. Bot API, una delle funzionalità più popolari di Telegram tra gli sviluppatori, ti consente di utilizzare i suoi messaggi come interfaccia.

Il sito Web del giocatore per PC non si carica correttamente

Per ottenere il token, avvia una conversazione con @BotPadre che, come suggerisce il nome, è un bot ufficiale che ti consente di creare e personalizzare i tuoi bot. Puoi accedere al bot utilizzando il link indicato o in alternativa cercare '@botfather' su Telegram.



Una volta nella chat, crea il tuo bot digitando /newbot comando. Continua a impostare il nome e il nome utente del tuo bot (abbiamo deciso di chiamare il nostro @pawsomebot). In seguito, otterrai un token unico per il tuo bot.

Ora che abbiamo tutti i prerequisiti, è il momento di passare alla parte emozionante!





Installazione di librerie

Se stai utilizzando Windows, apri il prompt dei comandi e digita i seguenti comandi:

pip install python-telegram-bot
pip install requests

Se stai usando macOS o Linux, usa invece i seguenti comandi sul tuo terminale. Inoltre, in Linux, assicurati di aver effettuato l'accesso come utente con privilegi sudo.





pip3 install python-telegram-bot
pip3 install requests

Scrivere il programma

Crea una nuova cartella sul tuo computer e aprila nel tuo editor preferito. Crea un nuovo file e chiamalo main.py. Questo file conterrà il codice sorgente per il tuo bot.

Ora, importiamo le librerie che abbiamo installato in precedenza insieme ad alcune delle loro funzioni integrate.

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

Il flusso del programma da qui in poi è accedere a TheCatAPI, ottenere l'URL di un'immagine casuale e inviare quell'immagine alla chat dell'utente.

Iniziamo con una funzione per ottenere l'URL dell'immagine, che può essere eseguita utilizzando il modulo delle richieste. In questa funzione, carichiamo i dati JSON di un file casuale fornito da TheCatAPI ed estraiamo il suo URL per un uso successivo. Per guardare il formato dell'oggetto JSON, vai su https://api.thecatapi.com/v1/images/search sul tuo browser. Noterai qualcosa del genere:

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

Si noti che l'oggetto JSON è un array che contiene un dizionario. Questo dizionario contiene l'URL con la chiave 'url'. Per estrarre l'URL, dobbiamo fare riferimento al primo elemento dell'array e quindi alla chiave pertinente.

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

Successivamente, dobbiamo inviare questa immagine nella chat di un utente. Per questo, abbiamo bisogno di un URL dell'immagine e dell'ID univoco della chat dell'utente. Creiamo una funzione wrapper per farlo. Per prima cosa, chiamiamo getUrl() . funzione per ottenere l'URL di un'immagine casuale --- questo URL cambia ogni volta che il programma scorre la funzione.

Questo è quindi seguito dall'ottenimento dell'ID chat dell'utente destinatario, che definisce la posizione di destinazione del bot per i messaggi e l'analisi dell'URL tramite l'API integrata del bot invia una foto() funzione.

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

Per saperne di più sulle varie funzioni integrate dell'API Bot e su come funzionano, non esitare a dare un'occhiata a Telegram documentazione ufficiale dopo questo tutorial.

Infine, creiamo una funzione che controlli il funzionamento generale del bot. Questa funzione---chiamata convenzionalmente main()---è dove inviamo una richiesta HTTP all'API Bot utilizzando il token che abbiamo ottenuto all'inizio del tutorial e quindi definiamo come sarà l'interazione dell'utente del bot. In un caso semplice come il nostro, questo significa essenzialmente avviare il bot e chiamare il inviaImmagine () funzione quando richiesto dall'utente.

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

Il tuo programma finale dovrebbe assomigliare a questo:

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

Il tuo bot di Telegram

Congratulazioni! Hai creato il tuo bot per alleviare lo stress che invia immagini open source dei gatti di Internet più carini su richiesta. Prova a eseguire il tuo programma e digita /Miao nella chat del tuo bot per attivarlo.

Sebbene questo possa essere un semplice bot con funzionalità limitate, mostra quanto sia potente l'ecosistema di sviluppo dei bot di Telegram. Puoi aggiungere un numero qualsiasi di subroutine e funzionalità complesse per migliorare la funzionalità del tuo bot --- il cielo è il limite. Per saperne di più sui fantastici bot di Telegram che i contributori hanno creato nel corso degli anni, dai un'occhiata al nostro elenco di utili bot di Telegram .

Puoi anche trovare una varietà di programmi con licenza open source per i bot di Telegram su piattaforme come GitHub. La maggior parte delle licenze open source consente di utilizzare, studiare, scaricare o modificare il codice sorgente di un programma.

Ospita il tuo bot di Telegram online

Ora che hai il tuo bot attivo e funzionante, prova a chiudere main.py sul tuo PC e usa il bot sulla tua app di messaggistica di Telegram. Risponde ancora al? /Miao comando? No, non è così.

Come principiante, potresti essere confuso sul motivo per cui main.py sul tuo PC deve essere attivo e funzionante quando hai già creato un bot in esecuzione su Internet. Il motivo è che il programma utilizza il PC come server locale per inviare richieste HTTP alle API utilizzate in questo programma.

Pertanto, dover eseguire il programma ogni volta che si desidera utilizzare l'app non è né fattibile né conveniente. Per risolvere questo problema, dobbiamo rimuovere la dipendenza del bot dal tuo dispositivo

Un modo per farlo è utilizzare un circuito stampato (PCB) a basso costo, come Raspberry Pi , per configurare il proprio server Web e utilizzarlo per eseguire il programma. Ha gli stessi vantaggi dell'esecuzione del programma sul PC senza i costi di mantenerlo acceso tutto il giorno e la notte poiché i PCB tendono ad avere un impatto energetico significativamente inferiore.

In alternativa, puoi anche distribuire il tuo programma nel cloud. Vai su una piattaforma di hosting di app Web come Heroku, AWS, Google Cloud o Microsoft Azure e scegli un abbonamento che meglio si adatta alle tue esigenze. Ti consigliamo di scegliere una prova gratuita o un abbonamento e di aggiornarlo man mano che aumenti la scala o l'ambito del tuo programma.

Condividere Condividere Tweet E-mail Come ospitare gratuitamente il tuo sito Web Python su Heroku

Hai bisogno di ospitare un piccolo sito web a costo zero? Heroku potrebbe essere proprio quello che stai cercando.

Leggi Avanti
Argomenti correlati
  • Programmazione
  • Pitone
  • Telegramma
  • Chatbot
  • Bot di social media
Circa l'autore Yash Chellani(10 Articoli Pubblicati)

Yash è un aspirante studente di informatica che ama costruire cose e scrivere di tutto ciò che riguarda la tecnologia. Nel suo tempo libero, gli piace giocare a Squash, leggere una copia dell'ultimo Murakami e cacciare draghi a Skyrim.

Altro da Yash Chellani

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti