Hogyan írjunk egy táviratot bot gyakorlati útmutató

Hogyan írjunk egy táviratot bot gyakorlati útmutató
Legutóbb távirat mindenki ajkán. Meg kell tisztelegni a marketing osztály ezt az alkalmazást, a hype emelt dicsőség. Az egyik fő „chip” távirat az állítólagos biztonsági - szerint Pavel Durov minden levelezés felhasználók közötti titkosított. Sőt, egyik spets.sluzhb a világ nem férnek hozzá az üzenetekhez. De ez a cikk nem erről. Ma szeretnék beszélni nem kevésbé meredek chip távirat, nevezetesen a botok. Amellett, hogy a hálózat egy csomó információt különböző botok távirat (GitHub csónak, például), a messenger megnyitotta API fejlesztők, és most mindenki elkészítheti a saját bot blackjack és zsemlét.

Ebben a cikkben adok egy példát írásban online bot segítségével Python és a Django keretrendszer. Azaz, mi „mosott le” egy teljes értékű web-alapú alkalmazás, amely forog a távoli gépen, és parancsokat fogadni a felhasználóktól. Minden forráskód elérhető a GitHub én tárolóból.

Leíró dokumentáció a folyamat kölcsönhatás botoktól távirat van. Annak érdekében, hogy ne újra feltalálni a kereket, találtam egy jó Python könyvtár, amely megvalósítja az összes alapvető funkciót botok - telepot. Amint azt korábban említettük, annak érdekében, hogy szolgálja a felhasználók számára a robot, akkor dolgozzon ki egy webes alkalmazás segítségével a Django keretrendszer.

Hogyan hozzunk létre egy bot távirat?

Kezdeni, meg kell regisztrálni a jövőnkbe távirat bot. Ez úgy történik, az alábbiak szerint:

Hogyan írjunk egy táviratot bot gyakorlati útmutató

  • A mi bot, én választottam a nevet PythonPlanetBot, mivel a fő funkció elemzés RSS feed Mezei Python Planet és a szállítási információt a legújabb üzenetét :)

Hogyan írjunk egy táviratot bot gyakorlati útmutató

Miután létrehozott egy bot, keresse meg a sort a szövegben:

Használja ezt a jelzőt, hogy hozzáférjen a HTTP API:

Majd a az úgynevezett token, ami által manipulálni a bot. Amellett, hogy a funkciók létrehozása távirat bot, BotFather is számos egyéb lehetőség:

és így tovább. Teljes leírás a rendelkezésre álló parancsok látható az első képen.

Első kódoló

Amint azt korábban említettük, fogunk írni egy webes alkalmazás Django. De érdemes megjegyezni, hogy ez nem feltétlenül szükséges. Ezt megteheti a szokásos Python script, bár ebben az esetben meg kell időközönként lekérdezi távirat új kérések bot felhasználók számára (getUpdates módszer), és egyre nagyobb az eltolás, így a legfrissebb adatok ismétlések nélkül. A távirat van két egymást kölcsönösen kizáró eljárások megszerzésére irányuló parancs / üzeneteit a bot.

  • Az API módszer hívás getUpdates
  • telepítése Webhook

Tehát vissza a python könyvtár dolgozni távirat - telepot. A mai napig, a legutóbbi változatai 6.7. Telepítse a virtuális környezetben python virtualenv:

A legegyszerűbb lehetőség kölcsönhatás távirat bot Python az alábbiak szerint:

Változó token hozzárendelése token kapott érték létrehozása bot segítségével BotFather. Ennek eredményeként, a kivégzés után ezeket a parancsokat, van:

Gratulálunk! Felhívtuk a legegyszerűbb API kérés getMe, amely visszaadja tájékoztatás a hajó: felhasználónév, id, first_name.

Azt add, hogy robotunk én névjegyzékébe, és elküldi neki az első szabványos parancs / Start

Hogyan írjunk egy táviratot bot gyakorlati útmutató

A folyamat a kommunikáció távirat bot történik HTTPS; Felhasznált adatok JSON. getUpdates módszer ad egy listát / tömb típusú objektumok frissítése. Belül Update üzenet az objektumot. A szokásos bot velünk folytatott kommunikációja valóban érdekli az a tárgy, üzenet, amelyben azt olvassuk a szöveget attribútumot, amely tárolja a szöveget küldött bot és chat létesítmény, amely információkat a felhasználó kezdeményezi a kommunikációt a távirat bot. Van is egy paraméter update_id, amely arra szolgál, mint az eltolás paraméter a hívás getUpdates módszer. Ezt update_id + 1 visszatér az összes üzenetet kapott, miután az utolsó update_id, míg az összes korábbi üzenet törlődik.

Szakaszában az írás egy egyszerű bot távirat nekünk ezeket a kihívásokat elég. Kezdjük alkalmazások Django szolgálni a felhasználókat.

Egy egyszerű függvény értelmezési RSS feed Planet Python így néz ki:

Itt én vagyok a python kéréseket a könyvtár dolgozni HTTP Legegyszerűbb formájában, anélkül, hibakezelés. Django „csillapító” a következő:

CommandReceiveView vár POST kérés önmagában értelmezi azt, és választ, az előre meghatározott parancs. Teljes Django alkalmazás megtalálható ezen a linken. Meg kell jegyezni, a kódot kell használni egy másik API hívás - sendmessage. Ez a módszer az üzenetet küldi, hogy a megadott felhasználó a chat_id és az üzenet szövegét. Chat_id - egy egyedi azonosítót egy chat és a felhasználó között a bot (az azonosítót, a válasz a kérelemre getUpdates). A távirat botok egy korlátozás, nem tudnak üzenetet küldeni a felhasználóknak, akik korábban nem kezdeményezett beszélgetés vele. Úgy látszik, ez azért történt, hogy ne állítsanak tömeg Javascriptet.

Tehát a Django webes alkalmazás fut. Hogyan kezdődik, hogy teszteljék a bot? És minden nagyon egyszerű - szükség van, hogy szimulálja a cselekvések távirat-szolgáltatás. Ehhez szükségünk van a HTTP kliens és a test a kérelmet. HTTP kliens használja a Chrome nevű plugint Postman. és mi a kérelmet szervezet közvetlenül a kapott adatok segítségével API hívást getUpdates.

Elindítása után a runserver, URL, amelyre küldeni a kérelmet az alábbiak szerint:

ahol BOT_TOKEN - ez a záloga bot. Lásd screenshot:

Hogyan írjunk egy táviratot bot gyakorlati útmutató

És nézzük csapatot küldeni takarmány lista híreket Planet Python:

Hogyan írjunk egy táviratot bot gyakorlati útmutató
Hogyan írjunk egy táviratot bot gyakorlati útmutató

A screenshotok látható, hogy a bot megfelelő választ adni a parancsot, hogy sorolja fel az elmúlt 10 üzenetét.

A következő lépés az, hogy telepíteni a Django alkalmazás a távoli gépen, és az azt követő hívás setWebhook átvitelére szolgáló eljárás egy URL-t kell küldeni a POST kérés a távirat-szolgáltatás, valahányszor egy bot parancsok számára. Ez lesz szó a következő cikkben.

Hogyan írjunk egy táviratot bot gyakorlati útmutató

A csatorna több mint 1000 tagot számlál, így csatlakozzon hozzánk, és akkor - DevBrain