Perussähkebotin rakentaminen Python 3: lla

Perussähkebotin rakentaminen Python 3: lla

Jos olet sähkeen käyttäjä, sinulla on varmasti ollut 'keskustelu' chatbotin kanssa jossain vaiheessa. Hämmästyttävän muokattavuutensa ansiosta Telegramin robotit tarjoavat erilaisia ​​etuja-olipa kyse sitten tehtävien automatisoinnista tai vain hauskanpidosta chat-ryhmäsi peleissä.





Vaikka jotkut saattavat pitää botin kehittämistä pelottavana tehtävänä, se ei todellakaan ole sitä. Oikealla suunnittelulla saat Telegram -botin käyttöön alle tunnissa! Näin voit luoda yksinkertaisen sähkebotin, joka lähettää söpöjä kuvia Internet -kissoista pyydettäessä.





Päästä alkuun

Tässä opetusohjelmassa aiomme käyttää Python 3: a python-sähke-bot ja pyynnöt kirjasto, ja TheCatAPI .





Jokaisella Telegramin botilla on ainutlaatuinen merkki, joka auttaa sitä kommunikoimaan Bot -sovellusliittymä jotta voit käyttää sovelluksen viestintäliittymää. Bot -sovellusliittymän, joka on yksi Telegramin suosituimmista ominaisuuksista kehittäjien keskuudessa, avulla voit käyttää sen viestejä käyttöliittymänä.

miten näet, mitkä poistetut YouTube -videot olivat

Aloita keskustelu saadaksesi tunnuksen @BotFather joka, kuten nimestä voi päätellä, on virallinen botti, jonka avulla voit luoda ja muokata omia robotteja. Voit käyttää botia annetun linkin avulla tai vaihtoehtoisesti etsiä '@botfather' sähkeestä.



Kun olet chatissa, luo botti kirjoittamalla /newbot komento. Jatka botin nimen ja käyttäjänimen asettamista (päätimme antaa meille nimen @pawsomebot). Tämän jälkeen saat botillesi ainutlaatuisen tunnuksen.

Nyt kun meillä on kaikki edellytykset, on aika siirtyä jännittävään osaan!





Kirjastojen asentaminen

Jos käytät Windowsia, avaa komentorivi ja kirjoita seuraavat komennot:

pip install python-telegram-bot
pip install requests

Jos käytät macOS- tai Linux -käyttöjärjestelmää, käytä seuraavia komentoja päätelaitteessasi. Lisäksi Linuxissa varmista, että olet kirjautunut sisään käyttäjänä sudo -oikeuksilla.





pip3 install python-telegram-bot
pip3 install requests

Ohjelman kirjoittaminen

Luo uusi kansio tietokoneellesi ja avaa se suosikkieditorissasi. Luo uusi tiedosto ja anna sille nimi main.py. Tämä tiedosto sisältää botin lähdekoodin.

Tuodaan nyt aiemmin asentamamme kirjastot yhdessä joidenkin niiden sisäänrakennettujen toimintojen kanssa.

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

Ohjelman kulku tästä eteenpäin on päästä TheCatAPI: han, hankkia satunnaisen kuvan URL -osoite ja lähettää kuva käyttäjän chattiin.

Aloitetaan toiminnolla kuvan URL -osoitteen saamiseksi, joka voidaan tehdä pyyntömoduulin avulla. Tässä toiminnossa lataamme TheCatAPI: n toimittaman satunnaisen tiedoston JSON -tiedot ja poimimme sen URL -osoitteen myöhempää käyttöä varten. Jos haluat tarkastella JSON -objektin muotoa, siirry kohtaan https://api.thecatapi.com/v1/images/search selaimessasi. Huomaat jotain tällaista:

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

Huomaa, että JSON -objekti on taulukko, joka sisältää sanakirjan. Tämä sanakirja sisältää URL -osoitteen, jossa on avain 'url'. URL -osoitteen purkamiseksi meidän on viitattava taulukon ensimmäiseen elementtiin ja sitten asiaankuuluvaan avaimeen.

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

Seuraavaksi meidän on lähetettävä tämä kuva käyttäjän chattiin. Tätä varten tarvitsemme kuvan URL -osoitteen sekä käyttäjän chatin yksilöllisen tunnuksen. Luo käärintätoiminto tätä varten. Ensiksi kutsumme getUrl () . -toimintoa saadaksesi satunnaisen kuvan URL-osoitteen --- tämä URL-osoite muuttuu aina, kun ohjelmasi toistaa toiminnon.

Tämän jälkeen vastaanottaja -käyttäjän chat -tunnuksen hankkiminen, joka määrittää botin kohdesijainnin viesteille ja jäsentää URL -osoitteen Bot -sovellusliittymän sisäänrakennetulla tavalla Lähetä valokuva() toiminto.

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

Jos haluat lisätietoja Bot API: n erilaisista sisäänrakennetuista toiminnoista ja niiden toiminnasta, tutustu Telegramiin virallista dokumentaatiota tämän opetusohjelman jälkeen.

Luo lopuksi toiminto, joka ohjaa botin yleistä toimintaa. Tämä toiminto --- perinteisesti nimeltään main () --- lähettää HTTP-pyynnön Bot API: lle opetusohjelman alussa saamamme tunnuksen avulla ja määrittelee sitten, millainen botin käyttäjän vuorovaikutus tulee olemaan. Niin yksinkertaisessa tapauksessa kuin meidän, tämä tarkoittaa lähinnä botin käynnistämistä ja soittamista sendImage () toiminto käyttäjän pyynnöstä.

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

Lopullisen ohjelman pitäisi näyttää tältä:

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

Oma sähke botti

Onnittelut! Olet rakentanut oman stressiä lievittävän botin, joka lähettää avoimen lähdekoodin kuvia söpöimmistä Internet-kissoista pyydettäessä. Kokeile suorittaa ohjelma ja kirjoittaa /Miau botin chatissa aktivoidaksesi sen.

Vaikka tämä saattaa olla yksinkertainen botti, jonka toiminnot ovat rajalliset, se osoittaa, kuinka tehokas Telegramin botin kehitysekosysteemi on. Voit lisätä minkä tahansa määrän monimutkaisia ​​aliohjelmia ja ominaisuuksia parantaaksesi botin toimivuutta --- taivas on rajana. Jos haluat tietää lisää mahtavista sähkeboteista, joita avustajat ovat tehneet vuosien varrella, tutustu luettelo hyödyllisistä sähkeroboteista .

Löydät myös erilaisia ​​avoimen lähdekoodin lisensoituja ohjelmia Telegram-botteja varten sellaisilla alustoilla kuin GitHub. Useimpien avoimen lähdekoodin lisenssien avulla voit käyttää, tutkia, ladata tai muokata ohjelman lähdekoodia.

Isäntä Telegram Bot verkossa

Nyt kun botti on käynnissä, yritä sulkea main.py tietokoneellasi ja käyttää botia Telegram Messenger -sovelluksessa. Vastaako se edelleen /Miau komento? Ei, ei.

Aloittelijana saatat olla hämmentynyt siitä, miksi main.py: n on oltava käynnissä tietokoneellasi, kun olet jo luonut Internetissä toimivan botin. Syynä tähän on se, että ohjelma käyttää tietokonettasi paikallisena palvelimena lähettääkseen HTTP -pyyntöjä tässä ohjelmassa käytettäville sovellusliittymille.

Siten ohjelman suorittaminen joka kerta, kun haluat käyttää sovellusta, ei ole toteutettavissa eikä kätevää. Tämän ongelman ratkaisemiseksi meidän on poistettava botin riippuvuus laitteestasi

Yksi tapa tehdä niin on käyttää halpaa painettua piirilevyä (PCB), kuten Raspberry Pi, oman verkkopalvelimen määrittämiseen ja ohjelman käyttämiseen. Sillä on samat edut kuin ohjelman suorittamisella tietokoneellasi ilman, että se pysyy päällä koko päivän ja yön, koska piirilevyillä on yleensä huomattavasti pienempi energiajalanjälki.

Vaihtoehtoisesti voit myös ottaa ohjelman käyttöön pilveen. Siirry verkkosovellusten hosting-alustalle, kuten Heroku, AWS, Google Cloud tai Microsoft Azure, ja valitse tarpeisiisi parhaiten sopiva tilaus. Suosittelemme, että valitset ilmaisen kokeilujakson tai tilauksen ja päivität sen, kun kasvatat ohjelman laajuutta tai laajuutta.

Jaa Jaa Tweet Sähköposti Kuinka isännöidä Python -verkkosivustoasi ilmaiseksi Herokulla

Haluatko isännöidä pienen verkkosivuston ilmaiseksi? Heroku saattaa olla juuri sitä mitä etsit.

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Python
  • Sähke
  • Chatbot
  • Sosiaalisen median robotit
Kirjailijasta Yash Chellani(10 artikkelia julkaistu)

Yash on pyrkivä tietotekniikan opiskelija, joka rakastaa rakentaa asioita ja kirjoittaa kaikesta tekniikasta. Vapaa -ajallaan hän tykkää pelata squashia, lukea uusimman Murakamin kopion ja metsästää lohikäärmeitä Skyrimissä.

Lisää Yash Chellanilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi