Hogyan készítsünk alapvető táviratbotot a Python 3 segítségével

Hogyan készítsünk alapvető táviratbotot a Python 3 segítségével

Ha Ön távirat -felhasználó, akkor valamikor 'beszélgetést' folytatott egy chatbot -tal. A Telegram robotjai lenyűgöző testreszabhatóságukkal számos előnyt kínálnak-legyen az akár feladatok automatizálása, akár csak egy kis szórakozás a chat-csoportban található játékokkal.





Bár egyesek ijesztő feladatnak találhatják a bot fejlesztését, valójában nem az. Megfelelő tervezéssel kevesebb mint egy óra alatt üzembe helyezheti a Telegram botot! Így hozhat létre egy egyszerű táviratbotot, amely aranyos képeket ad ki az internetes macskákról, amikor a rendszer kéri.





Elkezdeni

Ebben az oktatóanyagban a Python 3 -at fogjuk használni python-távirat-bot és kéréseket könyvtár, és A CatAPI .





A Telegram minden botja egyedi jelzővel rendelkezik, amely segíti a kommunikációt Bot API az alkalmazás üzenetkezelő felületének használatához. A Bot API, a Telegram egyik legnépszerűbb szolgáltatása a fejlesztők körében, lehetővé teszi, hogy üzeneteit felületként használja.

hogyan lehet kijavítani sajnos a Google Play szolgáltatások leálltak

A token megszerzéséhez kezdjen beszélgetést a következővel: @BotFather amely, ahogy a neve is sugallja, egy hivatalos bot, amely lehetővé teszi saját robotok létrehozását és testreszabását. A botot a megadott linken keresztül érheti el, vagy keresse a „@botfather” -t a Telegramon.



Miután belépett a csevegésbe, hozza létre botját a /newbot parancs. Továbbra is állítsa be botja nevét és felhasználónevét (úgy döntöttünk, hogy a miénk @pawsomebot nevet adjuk). Ezt követően a botjára egyedi tokent kap.

Most, hogy megvan az összes előfeltétel, itt az ideje, hogy rátérjünk az izgalmas részre!





Könyvtárak telepítése

Ha Windows rendszert használ, nyissa meg a parancssort, és írja be a következő parancsokat:

pip install python-telegram-bot
pip install requests

Ha macOS -t vagy Linuxot használ, akkor használja a következő parancsokat a terminálon. Linuxon kívül győződjön meg arról, hogy sudo jogosultságokkal rendelkező felhasználóként van bejelentkezve.





pip3 install python-telegram-bot
pip3 install requests

A program megírása

Hozzon létre egy új mappát a számítógépén, és nyissa meg kedvenc szerkesztőjében. Hozzon létre egy új fájlt, és nevezze el a main.py. Ez a fájl tartalmazza a bot forráskódját.

Most importáljuk a korábban telepített könyvtárakat és néhány beépített funkciót.

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

Innentől kezdve a program folyamata a TheCatAPI elérése, egy véletlenszerű kép URL -jének beszerzése és a kép elküldése a felhasználó csevegésébe.

Kezdjük egy funkcióval a kép URL -jének lekéréséhez, amelyet a kérések modul segítségével tehetünk meg. Ebben a függvényben betöltjük a TheCatAPI által biztosított véletlenszerű fájl JSON adatait, és kibontjuk annak URL -jét későbbi használatra. A JSON objektum formátumának megtekintéséhez lépjen a következő oldalra: https://api.thecatapi.com/v1/images/search a böngészőben. Valami ilyesmit fogsz észrevenni:

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

Vegye figyelembe, hogy a JSON objektum egy tömb, amely szótárat tartalmaz. Ez a szótár tartalmazza az URL -t az „url” kulccsal. Az URL kinyeréséhez hivatkoznunk kell a tömb első elemére, majd a megfelelő kulcsra.

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

Ezt követően el kell küldenünk ezt a képet a felhasználó csevegésébe. Ehhez szükségünk van egy kép URL -jére, valamint a felhasználó csevegésének egyedi azonosítójára. Ehhez hozzunk létre egy csomagoló funkciót. Először hívjuk a getUrl () . függvény egy véletlenszerű kép URL-jének lekéréséhez --- ez az URL minden alkalommal változik, amikor a program iterálja a függvényt.

Ezt követi a címzett felhasználó csevegési azonosítójának beszerzése, amely meghatározza a bot célhelyét az üzenetekhez, és elemzi az URL -t a Bot API beépített felületén keresztül kép küldése() funkció.

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

Ha többet szeretne megtudni a Bot API különféle beépített funkcióiról és azok működéséről, nézze meg bátran a Telegram szolgáltatásait hivatalos dokumentáció ezen oktatóanyag után.

Végül hozzunk létre egy olyan funkciót, amely szabályozza a robot általános működését. Ez a függvény --- hagyományosan main () ----itt küldünk HTTP kérést a Bot API-nak az oktatóanyag elején kapott token használatával, majd meghatározzuk, milyen lesz a bot felhasználói interakciója. Egy ilyen egyszerű esetben, mint a miénk, ez lényegében a bot kezdeményezését és a sendImage () funkció, ha a felhasználó kéri.

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

A végső programnak így kell kinéznie:

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

Saját táviratbot

Gratulálunk! Saját stresszoldó botját építette fel, amely felszólításra nyílt forráskódú képeket küld a legaranyosabb internetes macskákról. Futtassa a programot és írja be /miaú a bot chatjében, hogy aktiválja azt.

Bár ez egy egyszerű robot, korlátozott funkcionalitással, ez megmutatja, hogy a Telegram botfejlesztési ökoszisztémája mennyire erős. Hozzáadhat tetszőleges számú összetett alprogramot és funkciót, hogy javítsa a bot működését-az ég a határ. Ha többet szeretne megtudni a félelmetes távirat -botokról, amelyeket a közreműködők az évek során készítettek, tekintse meg a mi oldalunkat a hasznos táviratbotok listája .

Különféle nyílt forráskódú licencprogramokat is találhat a Telegram robotokhoz olyan platformokon, mint a GitHub. A legtöbb nyílt forráskódú licenc lehetővé teszi egy program forráskódjának használatát, tanulmányozását, letöltését vagy módosítását.

A táviratbot online tárolása

Most, hogy elindult a botja, próbálja meg bezárni a main.py -t a számítógépén, és használja a botot a Telegram messenger alkalmazásban. Válaszol -e még a /miaú parancs? Nem, nem.

Kezdőként megzavarodhat, hogy miért kell a main.py -nek működnie a számítógépén, ha már létrehozott egy botot az interneten. Ennek az az oka, hogy a program helyi számítógépként használja a számítógépet, hogy HTTP -kéréseket küldjön a programban használt API -knak.

Mint ilyen, a program futtatása minden alkalommal, amikor az alkalmazást használni kívánja, nem megvalósítható és nem is kényelmes. A probléma megoldása érdekében el kell távolítanunk a bot függését az eszközétől

Ennek egyik módja az olcsó nyomtatott áramköri lap (PCB), például a Raspberry Pi használata a saját webszerver beállításához és a program futtatásához. Ugyanazokkal az előnyökkel jár, mint a program számítógépen történő futtatása anélkül, hogy azt éjjel -nappal be kellene tartani, mivel a PCB -k általában lényegesen alacsonyabb energia -lábnyomúak.

Alternatív megoldásként telepítheti a programot a felhőbe. Lépjen át egy webalkalmazás-tárhelyre, például Heroku, AWS, Google Cloud vagy Microsoft Azure, és válassza ki az igényeinek leginkább megfelelő előfizetést. Javasoljuk, hogy válasszon ingyenes próbaidőszakot vagy előfizetést, és frissítse azt a program léptékének vagy hatókörének növelésével.

Részvény Részvény Csipog Email Hogyan lehet ingyenesen tárolni a Python webhelyét a Heroku -on

Költségmentes webhelyet kell üzemeltetnie? Lehet, hogy Heroku az, amit keres.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Piton
  • Távirat
  • Chatbot
  • Social Media Bots
A szerzőről Yash Chellani(10 cikk megjelent)

Yash egy törekvő informatikus hallgató, aki szeret építeni és írni minden technikai dologról. Szabadidejében szeret Squasht játszani, olvasni a legújabb Murakami egy példányát, és sárkányokat vadászni a Skyrimben.

Továbbiak Yash Chellani -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide