Jak vytvořit základního telegramového robota v Pythonu 3

Jak vytvořit základního telegramového robota v Pythonu 3

Pokud jste uživatelem Telegramu, určitě jste v určitém okamžiku měli „konverzaci“ s chatbotem. Díky své úžasné přizpůsobitelnosti nabízejí roboti Telegramu řadu výhod-ať už pro automatizaci úkolů, nebo si jen užíváte hry ve vaší chatovací skupině.





I když někteří mohou považovat vývoj robota za skličující úkol, ve skutečnosti tomu tak není. Se správným plánováním můžete mít telegramového robota v provozu za méně než hodinu! Zde je návod, jak vytvořit jednoduchého telegramového robota, který po vyzvání vydá roztomilé obrázky internetových koček.





Začínáme

Pro tento tutoriál použijeme Python 3, python-telegram-bot a žádosti knihovna, a The CatAPI .





Každý robot v Telegramu má jedinečný token, se kterým komunikuje Bot API abyste mohli používat rozhraní pro zasílání zpráv aplikace. Bot API, jedna z nejpopulárnějších funkcí Telegramu mezi vývojáři, vám umožňuje používat jeho zprávy jako rozhraní.

jak zjistit, co byla odstraněná videa z youtube

Chcete -li získat token, zahájte konverzaci s @BotFather což, jak název napovídá, je oficiální robot, který vám umožní vytvářet a přizpůsobovat vlastní roboty. K robotu se můžete dostat pomocí daného odkazu nebo můžete také hledat „@botfather“ na Telegramu.



Jakmile jste v chatu, vytvořte si robota zadáním /newbot příkaz. Pokračujte v nastavování jména a uživatelského jména svého robota (rozhodli jsme se pojmenovat náš @pawsomebot). V návaznosti na to získáte token jedinečný pro vašeho robota.

Nyní, když máme všechny předpoklady, je čas dostat se do vzrušující části!





Instalace knihoven

Pokud používáte Windows, otevřete příkazový řádek a zadejte následující příkazy:

pip install python-telegram-bot
pip install requests

Pokud používáte macOS nebo Linux, použijte na terminálu místo toho následující příkazy. V systému Linux se navíc ujistěte, že jste přihlášeni jako uživatel s oprávněními sudo.





pip3 install python-telegram-bot
pip3 install requests

Psaní programu

Vytvořte v počítači novou složku a otevřete ji ve svém oblíbeném editoru. Vytvořte nový soubor a pojmenujte jej main.py. Tento soubor bude obsahovat zdrojový kód vašeho robota.

Nyní importujeme knihovny, které jsme nainstalovali dříve, spolu s některými jejich vestavěnými funkcemi.

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

Tokem programu od této chvíle je přístup k TheCatAPI, získání adresy URL náhodného obrázku a odeslání tohoto obrázku do chatu uživatele.

Začněme funkcí pro získání adresy URL obrázku, kterou lze provést pomocí modulu požadavků. V této funkci načteme data JSON náhodného souboru poskytovaného TheCatAPI a extrahujeme jeho adresu URL pro pozdější použití. Chcete -li se podívat na formát objektu JSON, přejděte na https://api.thecatapi.com/v1/images/search ve vašem prohlížeči. Všimnete si něčeho takového:

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

Všimněte si, že objekt JSON je pole, které obsahuje slovník. Tento slovník obsahuje adresu URL s klíčem „url“. Chcete -li extrahovat adresu URL, musíme odkázat na první prvek pole a poté na příslušný klíč.

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ále musíme tento obrázek odeslat do chatu uživatele. K tomu potřebujeme adresu URL obrázku a jedinečné ID uživatelského chatu. Vytvořme k tomu funkci wrapper. Nejprve zavoláme getUrl () . funkce pro získání adresy URL náhodného obrázku --- tato adresa URL se změní pokaždé, když váš program funkci iteruje.

Poté následuje získání ID chatu příjemce, které definuje cílové umístění robota pro zprávy a analýza adresy URL pomocí integrovaného rozhraní API Bot. poslat fotku() funkce.

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

Chcete -li se dozvědět více o různých vestavěných funkcích Bot API a o tom, jak fungují, můžete se podívat na Telegram oficiální dokumentace po tomto tutoriálu.

Nakonec vytvořme funkci, která řídí celkové fungování robota. Tato funkce --- běžně nazývaná main () --- je místo, kde posíláme požadavek HTTP do Bot API pomocí tokenu, který jsme získali na začátku tutoriálu, a poté definujeme, jaká bude interakce robota s uživatelem. V případě tak jednoduchém, jako je ten náš, to v podstatě znamená inicializaci robota a volání sendImage () na výzvu uživatele.

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 měl vypadat 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

Gratulujeme! Postavili jste si svého vlastního robota uvolňujícího stres, který po vyzvání zasílá open source obrázky nejroztomilejších internetových koček. Zkuste spustit program a napište /mňoukat v chatu svého robota jej aktivujte.

Přestože se může jednat o jednoduchého robota s omezenou funkčností, ukazuje, jak silný ekosystém vývoje robotů Telegramu je. Můžete přidat libovolný počet komplexních podprogramů a funkcí, které zvýší funkčnost vašeho robota-nebe je limit. Chcete -li se dozvědět více o úžasných telegramových robotech, které přispěvatelé za ta léta vytvořili, podívejte se na naše seznam užitečných telegramových robotů .

Na platformách, jako je GitHub, můžete také najít celou řadu open-source licencovaných programů pro roboty Telegram. Většina licencí typu open source vám umožňuje používat, studovat, stahovat nebo upravovat zdrojový kód programu.

Hostujte svého telegramového robota online

Nyní, když máte svého robota v provozu, zkuste zavřít main.py na PC a použít robota v aplikaci Telegram messenger. Reaguje stále na /mňoukat příkaz? Ne, není.

Jako začátečník můžete být zmatení, proč musí být main.py na vašem počítači spuštěný, když jste si již vytvořili robota běžícího na internetu. Důvodem je to, že program používá váš počítač jako místní server k odesílání požadavků HTTP do rozhraní API použitých v tomto programu.

Proto není nutné spouštět program pokaždé, když chcete aplikaci používat, ani proveditelné, ani pohodlné. Abychom tento problém vyřešili, musíme odstranit závislost robota na vašem zařízení

Jedním ze způsobů, jak to udělat, je použít levnou desku s plošnými spoji (PCB), jako je Raspberry Pi, k nastavení vlastního webového serveru a jeho spuštění. Má stejné výhody jako spuštění programu na vašem PC bez nákladů na jeho udržování po celý den a noc, protože desky plošných spojů mívají výrazně nižší energetickou stopu.

Případně můžete svůj program nasadit také do cloudu. Přejděte na webovou platformu hostující platformy jako Heroku, AWS, Google Cloud nebo Microsoft Azure a vyberte si předplatné, které nejlépe vyhovuje vašim potřebám. Doporučujeme vybrat si bezplatnou zkušební verzi nebo předplatné a upgradovat ji, jak rozšiřujete rozsah nebo rozsah svého programu.

Podíl Podíl tweet E-mailem Jak zdarma hostovat svůj web Python na Heroku

Potřebujete zdarma hostovat malý web? Heroku může být přesně to, co hledáte.

Číst dále
Související témata
  • Programování
  • Krajta
  • Telegram
  • Chatbot
  • Roboti na sociálních médiích
O autorovi Yash Chellani(10 článků zveřejněno)

Yash je aspirující student informatiky, který rád staví věci a píše o technologiích všeho. Ve svém volném čase rád hraje Squash, čte kopii nejnovějšího Murakami a loví draky ve Skyrimu.

Více od Yash Chellani

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru