Ako vytvoriť základného telegramového robota v Pythone 3

Ako vytvoriť základného telegramového robota v Pythone 3

Ak ste používateľom Telegramu, určite ste v určitom bode mali „rozhovor“ s chatbotom. Vďaka svojej úžasnej prispôsobiteľnosti ponúkajú roboti Telegramu množstvo výhod-či už na automatizáciu úloh alebo len zábavu s hrami vo vašej skupine chatov.





Aj keď sa niektorým môže zdať vývoj robota ako skľučujúca úloha, v skutočnosti to tak nie je. Pri správnom plánovaní môžete bota Telegramu uviesť do prevádzky za menej ako hodinu! Tu je návod, ako vytvoriť jednoduchého telegramového robota, ktorý na výzvu zobrazí roztomilé obrázky internetových mačiek.





Začíname

Na tento tutoriál použijeme Python 3, python-telegram-bot a žiadosti knižnica, a TheCatAPI .





Každý robot v Telegrame má jedinečný token, s ktorým mu pomáha komunikovať Bot API aby ste mohli používať rozhranie správ pre aplikáciu. Bot API, jedna z najobľúbenejších funkcií Telegramu medzi vývojármi, vám umožňuje používať jeho správy ako rozhranie.

prečo hbo max stále padá?

Ak chcete získať token, začnite konverzáciu s @BotFather čo, ako naznačuje názov, je oficiálny robot, ktorý vám umožní vytvárať a prispôsobovať vlastných robotov. K robotovi sa môžete dostať pomocou daného odkazu alebo môžete alternatívne hľadať „@botfather“ na Telegrame.



Keď ste v chate, vytvorte si robota zadaním /newbot príkaz. Pokračujte v nastavovaní mena a používateľského mena svojho robota (rozhodli sme sa pomenovať nášho @pawsomebot). Potom získate token jedinečný pre vášho robota.

Teraz, keď máme všetky predpoklady, je načase sa dostať k vzrušujúcej časti!





Inštalácia knižníc

Ak používate systém Windows, otvorte príkazový riadok a zadajte nasledujúce príkazy:

pip install python-telegram-bot
pip install requests

Ak používate systém macOS alebo Linux, použite namiesto toho na termináli nasledujúce príkazy. V systéme Linux sa navyše uistite, že ste prihlásení ako používateľ s oprávneniami sudo.





pip3 install python-telegram-bot
pip3 install requests

Písanie programu

Vytvorte v počítači nový priečinok a otvorte ho vo svojom obľúbenom editore. Vytvorte nový súbor a pomenujte ho main.py. Tento súbor bude obsahovať zdrojový kód pre vášho robota.

Teraz importujeme knižnice, ktoré sme nainštalovali predtým, spolu s niektorými ich vstavanými funkciami.

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

Tok programu odteraz smeruje k prístupu k serveru TheCatAPI, získaniu adresy URL náhodného obrázka a odoslaniu tohto obrázku do chatu používateľa.

Začnime funkciou na získanie adresy URL obrázku, ktorú je možné vykonať pomocou modulu požiadaviek. V tejto funkcii načítame údaje JSON náhodného súboru poskytovaného spoločnosťou TheCatAPI a extrahujeme jeho adresu URL na neskoršie použitie. Ak sa chcete pozrieť na formát objektu JSON, zamierte do https://api.thecatapi.com/v1/images/search vo vašom prehliadači. Všimnete si niečo také:

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

Všimnite si, že objekt JSON je pole, ktoré obsahuje slovník. Tento slovník obsahuje adresu URL s kľúčom „URL“. Na extrahovanie adresy URL musíme odkázať na prvý prvok poľa a potom na príslušný kľúč.

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

Ďalej musíme tento obrázok odoslať do chatu používateľa. Na to potrebujeme adresu URL obrázku a jedinečný identifikátor chatu používateľa. Vytvorme na to funkciu obálky. Najprv voláme getUrl () . funkcia na získanie adresy URL náhodného obrázku --- táto adresa URL sa zmení vždy, keď váš program funkciu iteruje.

Potom nasleduje získanie ID chatu príjemcu, ktoré definuje cieľové umiestnenie robota pre správy a analýza adresy URL pomocou vstavaného rozhrania Bot API. Pošli fotku() funkciu.

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

Ak sa chcete dozvedieť viac o rôznych vstavaných funkciách Bot API a o tom, ako fungujú, môžete sa pozrieť na Telegram oficiálna dokumentácia po tomto návode.

Nakoniec vytvorme funkciu, ktorá ovláda celkové fungovanie robota. Táto funkcia-bežne nazývaná main () --- posielame požiadavku HTTP do rozhrania API API pomocou tokenu, ktorý sme získali na začiatku tutoriálu, a potom definujeme, aká bude interakcia používateľa s robotom. V takom jednoduchom prípade, ako je ten náš, to v zásade znamená spustenie robota a volanie na server sendImage () funkcia na výzvu používateľa.

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

Váš konečný program by mal vyzerať takto:

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

Váš vlastný telegramový robot

Gratulujem Postavili ste si svojho vlastného robota zmierňujúceho stres, ktorý po vyzvaní posiela open source obrázky najroztomilejších internetových mačiek. Skúste spustiť program a napíšte /mňau aktivujte ho v čete robota.

Aj keď to môže byť jednoduchý robot s obmedzenou funkčnosťou, ukazuje, aký silný je ekosystém vývoja robotov Telegramu. Môžete pridať ľubovoľný počet komplexných podprogramov a funkcií na zvýšenie funkčnosti vášho robota-obloha je limit. Ak sa chcete dozvedieť viac o úžasných robotoch Telegramu, ktoré prispievatelia za tie roky vytvorili, pozrite sa na naše zoznam užitočných robotov Telegramu .

Na platformách, ako je GitHub, môžete nájsť aj rôzne licencované programy s otvoreným zdrojovým kódom pre roboty Telegram. Väčšina licencií typu open source vám umožňuje používať, študovať, sťahovať alebo upravovať zdrojový kód programu.

Hostite svojho telegramového robota online

Teraz, keď máte robot spustený, skúste zatvoriť súbor main.py na počítači a použiť ho v aplikácii Telegram Messenger. Stále to reaguje na /mňau rozkaz? Nie, nie je.

Ako začiatočník môžete byť zmätení z toho, prečo musí byť súbor main.py na vašom počítači spustený, keď ste už vytvorili robota spusteného na internete. Dôvodom je to, že program používa váš počítač ako lokálny server na odosielanie požiadaviek HTTP na rozhrania API používané v tomto programe.

Spustenie programu zakaždým, keď chcete aplikáciu používať, nie je uskutočniteľné ani pohodlné. Aby sme tento problém vyriešili, musíme odstrániť závislosť robota na vašom zariadení

Jedným zo spôsobov, ako to urobiť, je použiť lacnú dosku s plošnými spojmi (PCB), napríklad Raspberry Pi, na nastavenie vlastného webového servera a jeho použitie na spustenie programu. Má rovnaké výhody ako spustenie programu na počítači bez nákladov na jeho celodenné a večerné používanie, pretože dosky plošných spojov majú spravidla výrazne nižšiu energetickú stopu.

Prípadne môžete svoj program nasadiť aj do cloudu. Prejdite na hostiteľskú platformu webových aplikácií, ako sú Heroku, AWS, Google Cloud alebo Microsoft Azure, a vyberte si predplatné, ktoré najlepšie vyhovuje vašim potrebám. Odporúčame vám zvoliť si bezplatnú skúšobnú verziu alebo predplatné a aktualizovať ich, pretože rozširujete rozsah alebo rozsah svojho programu.

zdieľam zdieľam Tweet E -mail Ako bezplatne hostovať svoj web Python na Heroku

Potrebujete bezplatne prevádzkovať malú webovú stránku? Heroku môže byť presne to, čo hľadáte.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Python
  • Telegram
  • Chatbot
  • Roboty na sociálnych sieťach
O autorovi Yash Chellani(10 publikovaných článkov)

Yash je ctižiadostivý študent informatiky, ktorý rád stavia veci a píše o všetkom technickom. Vo svojom voľnom čase rád hrá Squash, číta kópiu najnovšieho Murakami a loví drakov v Skyrime.

Viac od Yash Chellani

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber