Programma's voor het maken van een telegram-botautomatisering. Flibusta, Anton en andere bots op telegram - recensie

We schrijven /starten naar hem en krijgen een lijst met al zijn commando's.
De eerste en belangrijkste - /newbot - sturen we naar hem toe en de bot vraagt ​​hem om een ​​naam te bedenken voor onze nieuwe bot. De enige beperking op de naam is dat deze moet eindigen op ‘bot’. Als dit lukt, retourneert BotFather het bottoken en een link om de bot snel aan je contacten toe te voegen, anders zul je je hersens moeten breken over de naam.

Dit is al genoeg om aan de slag te gaan. Degenen die bijzonder pedant zijn, kunnen hier al een avatar, beschrijving en welkomstbericht aan de bot toewijzen.

Vergeet niet het ontvangen token te controleren via de link api.telegram.org/bot /getMe , zeggen ze, werkt niet altijd de eerste keer.

2. Programmering

Ik zal de bot in Python3 maken, maar vanwege de geschiktheid van deze taal kunnen de algoritmen eenvoudig naar een andere taal worden overgebracht.

Met Telegram kun je berichten niet handmatig uploaden, maar een webHook installeren, waarna ze elk bericht zelf verzenden. Voor Python is het, om geen last te hebben van cgi en threads, handig om een ​​soort reactor te gebruiken, dus koos ik voor tornado.web voor implementatie. (voor GAE is het handig om de combinatie Python2+Flask te gebruiken)

Botframe:

URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN MijnURL = "https://example.com/hook" api = verzoeken.Session() applicatie = tornado.web.Applicatie([ ( r"/", Handler), ]) if __name__ == "__main__": signal.signal(signal.SIGTERM, signal_term_handler) try: set_hook = api.get(URL + "setWebhook?url=%s" % MijnURL) if set_hook.status_code != 200: logging.error("Kan hook niet instellen: %s. Afsluiten." % set_hook.text) exit(1) application.listen(8888) tornado.ioloop.IOLoop.current().start () behalve KeyboardInterrupt: signal_term_handler(signal.SIGTERM, Geen)
Hier, bij het starten van de bot, installeren we een webhook op ons adres en vangen we het uitgangssignaal op om het gedrag te retourneren met het handmatig verwijderen van gebeurtenissen.

De tornado-applicatie voor het verwerken van verzoeken accepteert de klasse tornado.web.RequestHandler, die de botlogica zal bevatten.

Class Handler(tornado.web.RequestHandler): def post(self): try: logging.debug("Gekregen verzoek: %s" % self.request.body) update = tornado.escape.json_decode(self.request.body) message = update["bericht"] text = message.get("text") if tekst: logging.info("MESSAGE\t%s\t%s" % (bericht["chat"]["id"], tekst)) if text == "/": commando, *argumenten = text.split(" ", 1) response = CMD.get(command, not_found)(argumenten, bericht) logging.info("REPLY\t%s \t%s" % (bericht["chat"]["id"], antwoord)) send_reply(antwoord) behalve uitzondering als e: logging.warning(str(e))
Hier is CMD een woordenboek met beschikbare opdrachten, en send_reply is een functie voor het verzenden van een antwoord, waarbij een reeds gegenereerd berichtobject als invoer wordt gebruikt.

Eigenlijk is de code vrij eenvoudig:

Def send_reply(response): if "text" in reactie: api.post(URL + "sendMessage", data=response)

Nu alle logica van de bot is beschreven, kunt u er opdrachten voor gaan bedenken.

3. Teams

Allereerst moet je de Telegram-conventie volgen en de bot twee opdrachten leren: /start en /help:

Def help_message(argumenten, bericht): response = ("chat_id": message["chat"]["id"]) result = ["Hé, %s!" % message["from"].get("first_name"), "\rIk kan alleen deze commando's accepteren:"] voor commando in CMD: result.append(command) response["text"] = "\n\t" .join(resultaat) retourantwoord

De message["from"]-structuur is een object van het type User en biedt de bot informatie over zowel de gebruikers-ID als zijn naam. Voor antwoorden is het nuttiger om message["chat"]["id"] te gebruiken - in het geval van persoonlijke communicatie zal er een Gebruiker zijn, en in het geval van een chat - de chat-ID. Anders kunt u een situatie krijgen waarin de gebruiker in de chat schrijft en de bot reageert in een persoonlijk bericht.

Het commando /start zonder parameters is bedoeld om informatie over de bot weer te geven, en met parameters is het bedoeld voor identificatie. Het is handig om het te gebruiken voor acties waarvoor autorisatie vereist is.

Hierna kunt u enkele van uw eigen opdrachten toevoegen, bijvoorbeeld /base64:

Def base64_decode(argumenten, bericht): response = ("chat_id": message["chat"]["id"]) try: response["text"] = b64decode(" ".join(argumenten).encode("utf8 ")) behalve: response["text"] = "Kan het niet decoderen" tenslotte: antwoord terug

Voor mobiele Telegram-gebruikers is het handig om @BotFather te vertellen welke opdrachten onze bot accepteert:
Ik: /setcommands
BotFather: Kies een bot om de lijst met opdrachten te wijzigen.
Ik: @**********_bot
BotVader: Oké. Stuur mij een lijst met opdrachten voor uw bot. Gebruik dit formaat:

Commando1 - Beschrijving
command2 - Nog een beschrijving
I:
whoisyourdaddy - Informatie over de auteur
base64 - Base64-decodering
BotFather: Succes! Commandolijst bijgewerkt. /hulp

Met deze beschrijving zal Telegram, als de gebruiker / typt, op handige wijze een lijst met alle beschikbare opdrachten weergeven.

4. Vrijheid

Zoals u kunt zien, verzendt Telegram het hele bericht, niet gesplitst, en de beperking dat opdrachten beginnen met een schuine streep is alleen bedoeld voor het gemak van mobiele gebruikers. Dankzij dit kun je de bot leren een beetje menselijk te praten.

UPD: Zoals ze terecht suggereerden, zal dit alleen gebeuren via persoonlijke communicatie. In chats worden alleen berichten weergegeven die beginnen met het commando (/ ) (https://core.telegram.org/bots#privacy-mode)

Om ervoor te zorgen dat de bot alle berichten in groepen ontvangt, schrijft u de opdracht @BotFather /privacy instellen en schakel privacy uit.

Voeg eerst een handler toe aan Handler:

If tekst == "/": ... anders: antwoord = CMD[" "](bericht) logging.info("REPLY\t%s\t%s" % (bericht["chat"]["id"], antwoord)) send_reply(antwoord)
En dan voegen we pseudo-spraak toe aan de lijst met opdrachten:

RESPONSES = ( "Hallo": ["Hallo!", "Hallo!", "Welkom!", "Hallo, (naam)!"], "Hallo daar": ["Hallo!", "Hallo, (naam) ) )!", "Hallo!", "Welkom!"], "Hallo!": ["Hallo!", "Hallo, (naam)!", "Welkom!", "Hallo!"], "Welkom " : ["Hallo!", "Hallo!", "Hallo!", "Hallo, (naam)!",], ) def human_response(bericht): leven = fuzzywuzzy.process.extract(message.get(" text ", ""), RESPONSES.keys(), limit=1) response = ("chat_id": message["chat"]["id"]) if leven< 75: response["text"] = "I can not understand you" else: response["text"] = random.choice(RESPONSES.get(leven)).format_map({"name": message["from"].get("first_name", "")}) return response
Hier weerspiegelt de empirische constante 75 relatief goed de waarschijnlijkheid die de gebruiker eigenlijk wilde zeggen. En format_map is handig voor dezelfde beschrijving van strings die zowel vervanging vereisen als zonder vervanging. Nu zal de bot reageren op begroetingen en u soms zelfs bij uw naam noemen.

5. Geen tekst.

Bots kunnen, net als elke normale Telegram-gebruiker, niet alleen berichten schrijven, maar ook afbeeldingen, muziek en stickers delen.

Laten we bijvoorbeeld het woordenboek RESPONSES uitbreiden:

ANTWOORDEN["Hoe laat is het?"] = [" ", "(datum) UTC"]
En wij zullen de tekst opvangen :

Als antwoord["tekst"] == " ": response["sticker"] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC" del response["text"]
Het is te zien dat de berichtstructuur nu geen tekst meer bevat, dus het is noodzakelijk om send_reply te wijzigen:

Def send_reply(response): if "sticker" in reactie: api.post(URL + "sendSticker", data=response) elif "text" in reactie: api.post(URL + "sendMessage", data=response)
En dat is alles, nu zal de bot af en toe een sticker sturen in plaats van de tijd:

6. Kansen

Dankzij het gemak van de API en de snelle start kunnen Telegram-bots een goed platform worden voor het automatiseren van hun acties, het instellen van meldingen, het maken van quizzen en taakgebaseerde competities (CTF, DozoR en andere).

Terugkijkend kan ik zeggen dat er nu minder perversies zijn en dat het werk transparanter is.

7. Beperkingen

Helaas is er op dit moment een beperking aan het gebruik van webHook: het werkt alleen via https en alleen met een geldig certificaat, wat bijvoorbeeld nog steeds van cruciaal belang is voor mij vanwege het gebrek aan ondersteuning voor dynamische DNS door certificeringsinstanties.

Gelukkig kan Telegram ook met handmatige updates werken, dus zonder de code te wijzigen, kun je een andere Puller-service maken die ze downloadt en naar een lokaal adres stuurt:

Terwijl True: r = request.get(URL + "?offset=%s" % (laatste + 1)) if r.status_code == 200: voor bericht in r.json()["result"]: last = int (message["update_id"]) verzoeken.post("http://localhost:8888/", data=json.dumps(bericht), headers=("Content-type": "application/json", "Accepteren" : "text/plain")) else: logging.warning("FAIL " + r.text) time.sleep(3)

P.S. Wat punt 7 betreft, heb ik een handige oplossing gevonden: de bot niet thuis hosten, maar op Heroku, aangezien alle namen zoals *.herokuapp.com worden beschermd door hun eigen certificaat.

UPD: Telegram heeft de Bot Api verbeterd, daarom is het niet langer nodig om een ​​aparte functie te hebben voor het verzenden van berichten wanneer een webhook is geïnstalleerd, en kun je als reactie op een POST-verzoek reageren met dezelfde gegenereerde JSON met een responsbericht , waarbij een van de velden is ingesteld als "methode" ": "sendMessage" (of een andere methode die door de bot wordt gebruikt).

Tags: tags toevoegen

Messengers winnen snel aan populariteit onder internetgebruikers vanwege hun gemak, snelheid van werken en de afwezigheid van onnodige informatie, zoals in sociale netwerken.

Een van de meest populaire instant messengers, omdat het een hoge mate van vertrouwelijkheid van correspondentie biedt.

Daarom kan een gebruiker soms een vraag hebben: hoe kan hij een chatbot in Telegram maken om zijn producten en diensten zo actief mogelijk onder de aandacht van potentiële consumenten te brengen.

Definitie

Wat is een chatbot? Een chatbot of simpelweg een bot is een computeralgoritme dat is ontworpen om automatisch correspondentie en dialoog met een echte gebruiker te voeren.

Dit algoritme werkt niet volgens de principes van kunstmatige intelligentie, maar volgens een specifiek systeem voor het analyseren van een binnenkomend bericht en het selecteren van antwoordopties uit de bestaande database.

Daarom zijn de antwoorden van de bot in zeldzame gevallen ongepast, maar vaker wel dan niet is een goed ontwikkelde bot niet alleen in staat een adequate dialoog te voeren, maar ook vragen van gebruikers te beantwoorden, advies te geven, enz.

Chatbots komen veel voor op allerlei soorten websites.

Ze zijn vaak te vinden op sociale netwerken, en in een grote verscheidenheid aan varianten, bijvoorbeeld Art-bot, dat automatisch een schets maakt op basis van een verzonden foto, op de websites van bedrijven en bedrijven, op verschillende andere bronnen, in messengers, groepen en openbare pagina's op sociale netwerken.

Toepassingsgebied

Waarom heb je een bot nodig in Telegram?

In de meeste gevallen zijn bots, vooral de bots die in bots worden gebruikt, nodig om de producten en diensten van een organisatie te promoten.

Zij kunnen advies geven over een product en/of dienst, de bedrijfsomstandigheden van de organisatie, etc.

Met welk doel heeft een bepaald bedrijf zo’n bot nodig:

  • Voor gelijktijdig werken met een groot aantal opdrachtgevers;
  • Om potentiële consumenten te adviseren over basiskwesties en eenvoudige parameters;
  • Om de belasting voor hotline-operators of klantenondersteuning te verminderen;
  • Om de kosten van het belonen van consultants en het verminderen van hun personeelsbestand te verlagen;
  • Om klantverzoeken onder operators te verdelen in de beginfase van het werk;
  • Complexe klantvragen doorsturen naar een echte adviseur.

Tot welke positieve veranderingen kan het gebruik van een chatbot leiden?

Allereerst Dit is een vermindering van de belasting voor echte operators, wat een vermindering van hun personeel en werkuren betekent, wat tot aanzienlijke geldbesparingen leidt.

Ten tweede Hierdoor kunt u met veel meer klanten tegelijk werken dan voorheen, wat mogelijk kan leiden tot hogere winsten voor de organisatie.

Advies! Het is belangrijk om te onthouden dat bots alleen goed en effectief zijn voor relatief eenvoudige werkonderwerpen, wanneer consulting een duidelijk algoritme heeft. En alleen in de beginfase van het werken met een potentiële of bestaande klant.

Creatie

Met Telegram kun je bots maken en heeft het zelfs een aantal ingebouwde algoritmen voor de ontwikkeling en activering ervan.

Het maken van een bot in deze messenger is vrij eenvoudig en snel, wat ook bijdraagt ​​aan de populariteit van deze applicatie en het de belangrijkste maakt voor gebruik in de meeste organisaties en bedrijven.

Hoewel het ontwikkelen van een bot op zichzelf geen heel eenvoudig en snel proces kan worden genoemd, zal het zelfs met zo'n handig ingebouwd platform als Telegram toch behoorlijk wat tijd kosten.

Creatie-algoritme

Het is het handigst om bots op een computer te maken, omdat je behoorlijk wat extra bestanden nodig hebt.

Om dit te doen, kunt u Telegram downloaden en op uw computer installeren en vervolgens een bot maken.

Maar u kunt dit vanaf uw telefoon doen.

1 Nadat het installatieproces van Telegram is voltooid, open de applicatie en in de zoekbalk gemarkeerd met een vergrootglassymbool, typ Manybot;

2 Druk op de knop Zoek in het venster of knop Toetsenbordinvoer een zoekopdracht uitvoeren;

3 Zodra de zoekresultaten verschijnen, klik op de Start-knop, gelegen onderaan het programmavenster aan de rechterkant;

4 Druk op de knop Voeg een nieuwe bot toe;

5 Als reactie verschijnt er een servicebericht van Telegram in het berichtenvenster, met instructies voor uw verdere acties om een ​​bot te maken - u moet ze precies volgen;

6 Volgens de instructies, ga naar @BotFather-account door op de blauwe link met de accountnaam te klikken;

7 Nu klik op de knop Bericht verzenden om correspondentie met deze “gebruiker” te starten;

8 Voer het commando /start in en als reactie hierop ontvang je een lijst met opdrachten die kunnen worden gebruikt bij het maken van een bot;

9 Stuur een opdracht /nieuw opstarten;

10 Wacht op een reactie;

11 Stuur de originele botnaam die u heeft gemaakt– dit wordt weergegeven tijdens het zoeken;

12 Wacht nu op het antwoord en stuur de technische naam van de bot– het moet in het Engels geschreven zijn en eindigen op “bot”;

13 In dit stadium het is raadzaam om het API-token te kopiëren;

14 Terug naar opnieuw @Manybot;

15 Plak het gekopieerde bij het API-token van de vorige fase;

16 Wacht op antwoord;

17 Typ nu de doelen van uw bot– waarvoor het nodig is en hoe het werkt;

18 U kunt deze stap overslaan. Om dit te doen, voert u in /overslaan;

19 Wacht op een reactie, met de melding dat het maken van de bot is voltooid.

De bot is nu gemaakt en klaar voor gebruik. In het antwoordbericht krijgt u een link naar de bot waarmee u gebruikers uit uw contactlijst kunt uitnodigen. Het biedt ook een lijst met aanbevolen opdrachten voor het posten en automatisch posten op sociale netwerken.

Functionaliteitscontrole

Nu moet je controleren of je bot goed werkt.

Om dit te doen, probeert u het te vinden via , waarbij u de zoeknaam invoert, niet de technische naam.

Als je in de vorige fase alles correct hebt gedaan, zou de bot in de zoekresultaten moeten verschijnen en normaal moeten werken.

Teams maken

Als de bot normaal functioneert, kun je beginnen met het maken van je eigen teams erin.

Commando's zijn nodig zodat wanneer een gebruiker de bot een vraag stelt, de bot reageert met de nodige informatie, en er moeten voor absoluut alle bots commando's worden gemaakt.

Om dit te doen, doet u het volgende:

1 Kies /opdrachten in het invoerveld;

2 Typ de naam van het team dat u aanmaakt;

3 Typ de tekst die de bot zal uitgeven als reactie op deze opdracht– dit kunnen een of meer berichten zijn, waaronder afbeeldingen, muziek of video's;

Nu kunt u vrijelijk andere opdrachten maken die aan andere verzoeken voldoen, in onbeperkte hoeveelheden.

Het bewerken van een reeds aangemaakte opdracht is ook acceptabel, Om dit te doen, doet u het volgende:

1 Voer in /opdrachten, /teamnaam;

2 Klik op de knop Opdracht weergeven en het antwoord dat de gebruiker op een dergelijk commando ontvangt, zal verschijnen;

3 Dienovereenkomstig, knop Opdrachtreacties bewerken kunt u het antwoord bewerken dat de opdracht aan de gebruiker geeft.

Twitter of RSS.

Ga als volgt te werk om een ​​dergelijke uitzending in te stellen:

1 Typ uw bot /autoposting-opdracht;

2 Nu tussen de knoppen onder aan het venster selecteer het sociale netwerk waarvan u automatische uitzendingen wilt instellen en klik erop;

3 Voer een link naar die pagina in, van waaruit u nieuws in Telegram wilt uitzenden (dit hoeft geen geautoriseerde pagina te zijn, dat wil zeggen dat u automatisch posten kunt instellen, niet vanaf uw pagina of zonder toestemming op de site).

Dit formaat is ideaal voor het verspreiden van nieuws naar een groot aantal abonnees.

Het is echter niet geschikt voor bijvoorbeeld het adviseren van klanten.

Telegram lag de laatste tijd op ieders lippen. We moeten de marketingafdeling van deze app de eer geven, zij hebben voor veel hype gezorgd. Een van de belangrijkste kenmerken van Telegram is de veronderstelde veiligheid ervan: volgens Pavel Durov is alle correspondentie tussen gebruikers gecodeerd. Bovendien heeft geen enkele inlichtingendienst ter wereld toegang tot uw berichten. Maar daar gaat dit artikel niet over. Vandaag wil ik het hebben over een even coole functie in Telegram, namelijk bots. Naast het feit dat het netwerk al vol staat met informatie over verschillende soorten Telegram-bots (github-bot bijvoorbeeld), heeft de messenger zijn API opengesteld voor ontwikkelaars, en nu kan iedereen zijn eigen bot maken met blackjack en bonussen.

In dit artikel geef ik een voorbeeld van het schrijven van een online bot met behulp van het Python- en Django-framework. Dat wil zeggen dat we een volwaardige webapplicatie zullen bouwen die op een externe host zal draaien en opdrachten van gebruikers zal ontvangen. Alle broncode is beschikbaar in mijn github-repository.

Er is documentatie aanwezig die het proces van interactie met Telegram-bots beschrijft. Om het wiel niet opnieuw uit te vinden, heb ik een goede Python-bibliotheek gevonden die alle basisfuncties van bots implementeert: telepot. Zoals ik eerder al zei, gaan we, om de gebruikers van onze bot van dienst te zijn, een webapplicatie ontwikkelen met behulp van het Django-framework.

Hoe maak je een Telegram-bot?

Eerst moeten we onze toekomstige bot registreren in Telegram. Dit gebeurt als volgt:

  • U moet de Telegram-applicatie op uw telefoon of computer installeren. U kunt de applicatie downloaden
  • Voeg een bot met de naam toe aan uw contactenlijst BotVader
  • We starten de ‘communicatie’-procedure met de bot door op een knop te drukken Begin. Vervolgens zien we een lijst met opdrachten, precies zoals in de schermafbeelding.
  • Om een ​​nieuwe bot te maken, moet je de opdracht uitvoeren /nieuwebot en volg de instructies. merk dat op gebruikersnaam voor een bot moet altijd het woord bot aan het einde bevatten. Bijvoorbeeld DjangoBot of Django_bot.

  • Voor onze bot heb ik de naam PythonPlanetBot gekozen, omdat de belangrijkste functie het parseren van de RSS-feed van de Python Planet-website is en informatie over de nieuwste berichten aan de gebruiker verstrekt :)

Let na het maken van de bot op de regel met de tekst:

Gebruik dit token om toegang te krijgen tot de HTTP API:

Gevolgd door de zogenaamde token waarmee we onze bot zullen manipuleren. Naast de functie van het maken van een telegrambot heeft BotFather nog een aantal andere functies:

  • Geef de bot een beschrijving
  • Stel een avatar in
  • Token wijzigen

Laten we beginnen met coderen

Zoals ik al eerder zei, we zullen schrijven Django-webapplicatie. Maar het is vermeldenswaard dat dit niet nodig is. Je kunt rondkomen met een regulier Python-script, hoewel je in dit geval Telegram periodiek moet peilen naar nieuwe verzoeken van botgebruikers (met behulp van de methode ontvang updates) en toenemende offset om de nieuwste gegevens te krijgen zonder herhaling. In Telegram zijn er twee elkaar uitsluitende methoden voor het ontvangen van opdrachten/berichten voor uw bot.

  • Een API-methodeaanroep gebruiken ontvang updates
  • Webhook-installatie

Bij het instellen van een webhook wordt een speciale URL aan de bot doorgegeven, waarnaar een POST-verzoek wordt verzonden telkens wanneer iemand berichten naar de bot begint te verzenden. Het is deze optie die we zullen gebruiken voor interactie tussen de bot en zijn gebruiker. Om de URL in te stellen, moet u de API-methode gebruiken stelWebhook in. Ik merk op dat de URL moet beginnen met https, dat wil zeggen een beveiligde SSL-verbinding moet hebben met een geldig certificaat. Met Telegram kunt u een zelfondertekend certificaat gebruiken, hoewel hiervoor een methode vereist is stelWebhook in verzend ook de openbare sleutel in PEM-formaat (ASCII base64). Of je kunt het verkrijgen bij Let's Encrypt.

Lees meer over ontvang updates En stelWebhook in kan dienovereenkomstig worden gelezen en .

Laten we dus terugkeren naar de Python-bibliotheek voor het werken met Telegram - telepoteren. Momenteel is de nieuwste versie 6.7. Installeer het in de virtuele omgeving Python Virtualenv:

Pip installeert telepot

De eenvoudigste manier om met een Telegram-bot in Python te communiceren is als volgt:

Importeer telepottoken = "123456" TelegramBot = telepot.Bot(token) print TelegramBot.getMe()

Aan de tokenvariabele wordt de waarde toegewezen van het token dat is ontvangen bij het maken van de bot via BotFather. Als gevolg hiervan krijgen we na het uitvoeren van deze opdrachten:

(u"gebruikersnaam": u"PythonPlanetBot", u"first_name": u"Python Planet Bot", u"id": 199266571)

Gefeliciteerd! We hebben het eenvoudigste API-verzoek getMe genoemd, dat informatie over de bot retourneert: gebruikersnaam, id, voornaam.

Laten we onze bot toevoegen aan onze contactenlijst en hem het eerste standaardcommando /start sturen

Voer de code uit:

TelegramBot.getUpdates() [(u"bericht": (u"datum": 1459927254, u"text": u"/start", u"from": (u"gebruikersnaam": u"adilkhash", u"voornaam ": u"Adil", u"id": 31337), u"message_id": 1, u"chat": (u"gebruikersnaam": u"adilkhash", u"first_name": u"Adil", u" type": u"privé", u"id": 7350)), u"update_id": 649179764)]

Het communicatieproces met een telegrambot vindt plaats via HTTPS; JSON wordt gebruikt om gegevens over te dragen. Methode ontvang updates retourneert een lijst/matrix met Update-typeobjecten. Inside Update is een berichtobject. Voor standaardinteractie met een bot zijn we eigenlijk geïnteresseerd in het Message-object, waaruit we het tekstattribuut lezen, dat de tekst opslaat die naar de bot wordt verzonden, en het chatobject, dat informatie bevat over de gebruiker die het gesprek met onze Telegram is begonnen. bot. Er is ook een parameter update_id die dient als offsetparameter bij het aanroepen van de getUpdates-methode. Dat wil zeggen, update_id+1 retourneert alle berichten die zijn ontvangen na de laatste update_id, terwijl alle eerdere berichten worden verwijderd.

TelegramBot.getUpdates(649179764+1) [(u"bericht": (u"datum": 1459928527, u"tekst": u"hallo bro", u"van": (u"gebruikersnaam": u"adilkhash", u"first_name": u"Adil", u"id": 31337), u"message_id": 13, u"chat": (u"gebruikersnaam": u"adilkhash", u"first_name": u"Adil" , u"type": u"privé", u"id": 7350)), u"update_id": 649179765)]

In de fase van het schrijven van de eenvoudigste Telegram-bot zijn deze oproepen voldoende voor ons. Laten we beginnen met het schrijven van een Django-applicatie om onze gebruikers van dienst te zijn.

Een eenvoudige RSS-feedparseerfunctie van Planet Python ziet er als volgt uit:

# -*- codering: utf8 -*- van xml.etree import cElementTree importverzoeken def parse_planetpy_rss(): """Parses eerste 10 items van http://planetpython.org/rss20.xml """ response = verzoeken.get ("http://planetpython.org/rss20.xml") parsed_xml = cElementTree.fromstring(response.content) items = voor knooppunt in parsed_xml.iter(): if node.tag == "item": item = () voor item_node in lijst(knooppunt): if item_node.tag == "titel": item["titel"] = item_node.text if item_node.tag == "link": item["link"] = item_node.text items. append(item) artikelen retourneren[:10]

Iedereen kent Pavel Durov, de maker van het sociale netwerk VKontakte. In 2013, na de verkoop van het vorige project, richtten hij en zijn team de Telegram-messenger op. Via dit portaal kunt u boeken lezen, muziek downloaden, het weerbericht bekijken, gegevens coderen, enzovoort. Telegram heeft nog veel meer handige functies.

Voordelen van Telegram ten opzichte van andere instant messengers

Wat is er goed aan het project en hoe maak je een bot in Telegram? Allereerst is het sociale netwerk multi-platform. Het is onwaarschijnlijk dat u op absoluut alle platforms een andere gratis messenger van hoge kwaliteit zult vinden, en zelfs zonder reclame. Het is veel handiger en praktischer dan browserportals.

Onlangs is een van de kenmerken van deze messenger het maken van persoonlijke bots. Wat is het? Hoe maak je een bot in Telegram zonder programmeervaardigheden? Waarom zijn ze überhaupt nodig? Dit en nog veel meer zullen in dit artikel worden besproken.

Telegram-bots

Bots in Telegram zijn een soort chatbot, maar dan in de vorm van een geregistreerde gebruiker. De namen van deze gebruikers eindigen met het woord bot. Ze zijn in staat verschillende acties uit te voeren. Brede multifunctionaliteit in competente handen zal het leven van andere gebruikers aanzienlijk vereenvoudigen.

Hoe begin je met communiceren met bots?

Het is heel gemakkelijk om aan de slag te gaan. Nadat u de gewenste bot heeft gevonden, start u deze. Het botnummer in Telegram verschilt afhankelijk van de functies. Het onderstaande virtuele toetsenbord helpt u hierbij. Hierna verzendt de bot een lijst met beschikbare informatie en opdrachten.

Een bot maken zonder programmeervaardigheden

Hoe maak je een bot in Telegram? In slechts vijf minuten na het lezen van de aanmaakinstructies kunt u het proces herhalen en uw eigen creatie maken, zelfs zonder programmeervaardigheden:

  1. In uw browser zou u de site Manybot moeten vinden, waarmee u gratis uw eigen bot kunt maken.
  2. Op de site zie je een grote knop: “Maak een bot”.
  3. Dan moet je iets lager op 'Telegram openen' klikken.
  4. Vervolgens moet u zich registreren in de messenger.
  5. Wanneer u zich aanmeldt bij Telegram, ziet u twee vensters: Chats en Nieuw bericht. Typ Botfather onder de naam van het tweede venster in de zoekbalk.
  6. Klik op de gevonden bot. Je bent in de chat terechtgekomen, waaronder een Start-knop, je moet erop drukken.
  7. Om een ​​nieuwe bot aan te maken, schrijft u naar de chat /newbot, waarna de gesprekspartner zal reageren met het verzoek om een ​​naam voor de nieuwe assistent te bedenken. Laten we de bot bijvoorbeeld Nonprog noemen.
  8. Hierna wordt u gevraagd een bijnaam voor uw bot te bedenken, die moet eindigen op bot. Het ziet er als volgt uit: Nonprogbot.
  9. Na de bovenstaande handelingen stuurt de gesprekspartner een token. Het zal er ongeveer zo uitzien: 493493:AAEOrog63 (dit is het nummer van de bot in Telegram, maar je kunt het later vinden met een ander nummer). Deze regel moet met de muis of de sneltoetsen Ctrl+C naar het klembord worden gekopieerd.
  10. Voer in de zoekbalk de zin 'manybot' in, gevolgd door /Addbot en vervolgens /start.
  11. Een nieuwe bot begint een dialoog met jou. Nadat je zijn bericht hebt gelezen, klik je op de knop onderaan “Een nieuwe bot toevoegen”. Hij zal instructies sturen, waarvan het antwoord de knop 'Ik heb het token gekopieerd' is.
  12. Plak het token.
  13. Vervolgens kunt u een beschrijving voor uw bot bedenken, of u kunt dit later doen door op de knop ‘Overslaan’ te klikken.
  14. Keer terug naar het venster met de zoekregel en voer daarin de naam van uw assistent in. Als alles klopt, is het maken van de bot in Telegram voltooid. Ga met hem in dialoog en activeer hem met de Start-knop.

Deze vrij gedetailleerde instructie helpt je gegarandeerd een bot te maken en ermee te communiceren. Het is ook mogelijk om extra functies te creëren door de namen van commando's en antwoorden op deze verzoeken vast te leggen.

Als alles min of meer duidelijk is over hoe je een bot in Telegram kunt maken, kan de vraag vanuit een relevanter perspectief worden bekeken, namelijk vanuit de inkomstenkant.

Is het mogelijk om geld te verdienen met bots?

Tegenwoordig boekt Telegram zeer snelle vooruitgang en overtreft het zijn concurrenten. Het is dus logisch om aan te nemen dat de waarde van bots ook toeneemt. Helaas is het onwaarschijnlijk dat je een gemakkelijke manier zult vinden om geld te verdienen door bots te maken. Hiervoor is kennis van programmeren vereist. Wat zijn inkomsten?

Creatie en verkoop van bots voor bedrijven

Hoe maak je een bot in Telegram voor verkoop? Dit onderwerp is nog niet erg populair, dus door bots voor verschillende bedrijven te maken, kun je gemakkelijk de jackpot winnen. Als je goed leert coderen, zullen veel bedrijfseigenaren je opmerken en erin geïnteresseerd raken.

Hoe maak je een bot in Telegram? Als je een beginner bent, probeer dan programmeercursussen te volgen, want zonder dit zal het heel moeilijk voor je zijn.

Het is misschien vreemd om dit te horen, maar messengers zullen binnenkort populairder worden dan sociale netwerken, omdat het veel handiger is om te chatten en een opdracht te geven dan tijd te verspillen aan niet altijd handige applicaties. Hier zijn enkele interessante bots in Telegram:

  1. Weermannen - deze geweldige bot zal alle weerwidgets en -applicaties voor je vervangen. Ondanks up-to-date informatierapporten van vijf dagen van tevoren, informeert deze bot u automatisch over de weersomstandigheden, u hoeft alleen maar te schrijven in welke dag u geïnteresseerd bent.
  2. Mycoocbot zal de verzameling voedselrecepten vervangen. Schrijf gewoon de ingrediënten op die je in je koelkast hebt en krijg verschillende dineropties.
  3. To PDF is een bot met een beperkte specialisatie. Het converteert documenten naar PDF-bestanden. Het is een kleinigheid, maar wel fijn; je hoeft niet op internet te zoeken naar speciale diensten, die ook nog eens grotendeels betaald worden.
  4. Uitspraakbot is een onmisbare vriend bij het leren van vreemde talen. Weet u niet wat het juiste Engelse woord is? Voer het gewoon in en de bot stuurt je een voice-over. Ondersteunt vele talen.
  5. YouTube Downloader is een chatbot waarmee je elke video van YouTube kunt downloaden. Er zijn al veel manieren om dit op internet te doen, maar waarom zou je je druk maken als er zo'n bot is? Voer gewoon de videolink in en u ontvangt downloadlinks in verschillende formaten.

Handige bots voor zakelijk en werk

Telegram-bots zijn niet alleen voor entertainment. Velen van hen zullen helpen bij het zakendoen, studeren en werken:

  1. RussianPost is misschien wel een van de meest niet-standaard bots, omdat je hierdoor kunt communiceren met medewerkers van Russian Post. Vergeet de verschillende e-mailapplicaties en clients. Deze bot zal ze allemaal vervangen.
  2. Wisselkoersbot is een zeer nuttige bot op boekhoudkundig gebied. Hiermee kunt u de wisselkoersen controleren en verschillende bedragen van de ene valuta naar de andere overboeken. Biedt uitgebreide informatie, inclusief grafieken.
  3. Taxigram is een chatbot die u helpt een taxi te bestellen of uit te zoeken waar u dat kunt doen. Momenteel exploiteren verschillende bedrijven deze dienst, maar binnenkort komt uw taxi er zeker aan. Je vult gewoon punt A en punt B in, waarna de bot je een foto stuurt van de kaart met jouw route.
  4. Yandeks is een van de krachtigste bots. Het heeft een zeer brede functionaliteit, van het lezen van boeken tot het zoeken naar specifieke informatie. Bovendien geeft deze bot nieuws weer op veel gebieden van het leven.
  5. SberBank - het is niet nodig om veel over deze assistent te zeggen. De officiële bot van Sberbank, waarmee je alle bewerkingen kunt uitvoeren door berichten naar de chat te sturen. Het zal voor veel ondernemers zeker nuttig zijn.

Contentmarketing

Hoe maak je een bot in Telegram zonder programmeervaardigheden?

Heb je een eigen chatbot nodig? Om het te ontwerpen hoef je geen code te bezitten: moderne technologieën en gratis diensten maken het mogelijk om snel en eenvoudig een telegram-bot te maken zonder te programmeren.

Als je een eenvoudig product nodig hebt zonder kunstmatige intelligentie, dan kun je het zelf doen. Vandaag zullen we het proces van het maken en opzetten van een eenvoudige chatbot analyseren: we gebruiken de Manybot-service als voorbeeld.

Maar eerst: theorie :)

We hebben al geschreven waarom bots nodig zijn in Telegram, Facebook, WhatsApp en andere messengers - maar we zullen onszelf herhalen. Als je de cijfers gelooft, zullen chatbots het ‘next big thing’ worden. Het publiek van instant messengers heeft bijvoorbeeld al het publiek van sociale netwerken overtroffen, en de kloof blijft groeien. De voordelen van bots voor het publiek liggen voor de hand. Het is handig: ze boeken kaartjes, bestellen eten, bestellen taxi's, zoeken informatie op en zijn geschikt voor vele andere functies. Er bieden zich ook interessante mogelijkheden aan voor het bedrijfsleven:

  • nieuw marketingkanaal;
  • lage (nog steeds) concurrentie;
  • hoge interactiviteit (bots zijn goed betrokken bij interactie);
  • het echte voordeel van de tool (als u deze aanbiedt, creëert u waarde en versterkt u het merkimago).

Dit is grofweg hoe telegrambots werken om het ‘gezicht’ van een bedrijf te creëren. Trouwens, uw eigen chat-gesprekspartner zal uw bedrijf een "progressieve" flair geven - dit is tenslotte een luide, maar nog steeds zeldzame trend in Rusland.

Hoe werken chatbots?

Laten we eens kijken naar de werkingsprincipes van dergelijke programma's. Er zijn twee soorten bots. De eerste zijn ‘eenvoudig’, gebaseerd op commando’s, terwijl de tweede zijn voorzien van kunstmatige intelligentie. Bij de eerstgenoemden is het duidelijker: hun ‘zenuwstelsel’ is onderworpen aan strikte algoritmen en regels. “Als de gebruiker verzoek A verzendt, doe ik verzoek B.” Ijzersterk en zonder interpretatie.

Maar hoe werken telegrambots ‘belast’ met bewustzijn? Ze vertrouwen op machine learning en datamining. Om deze termen volledig te verkennen, moet je een proefschrift schrijven. Maar het punt is om algoritmen te creëren die kunnen leren. Er zijn twee manieren: inductief (leren door te zoeken naar algemene patronen) en deductief - leren door de volledige datareeks te downloaden. Of de tweede manier iets te maken heeft met zelflerende systemen is nog steeds controversieel. En hoogstwaarschijnlijk is dat niet het geval. Daarom is het in de moderne wetenschap gebruikelijk om machine learning-algoritmen als inductief te beschouwen: op zoek naar patronen in gegevens en deze interpreteren.

Maar laten we de wiskunde achterwege laten. Speciale platforms met een "menselijke" interface weten hoe een telegrambot werkt - en dit is voldoende om deze te maken zonder de code te bezitten.

Een bot lanceren zonder de code te kennen

Laten we terugkeren naar het onderwerp van het artikel: laten we het hebben over het maken van een telegram-chatbot met behulp van de Manybot-service. We hebben er om verschillende redenen voor gekozen. Het belangrijkste is dat dit vandaag de meest adequate oplossing in het Russisch is met een eenvoudige interface. Het systeem helpt echt bij het maken van een bot in alle fasen en vereist geen kennis van code of API. Er zijn alternatieven in het Engels, maar die zijn complexer of niet ‘vriendelijk’ voor de Telegram-messenger. Dus voor nu - Manybot :)

Dit platform is opgericht door Mikael Jan, zoon van de oprichter van Abbyy en zelf een getalenteerde ondernemer. Maar dit gaat niet over hem, maar over zijn geesteskind. Manybot is een chatbot waarmee u uw bot kunt aanpassen. Laten we het proces stap voor stap bekijken.

1. Ga op de website naar de CTA"Open Manybot in Telegram" - de actie gaat ervan uit dat je al een account in de messenger hebt :)

2. Hiermee ga je naar de assistent-bot. Na de begroeting, zoals in sprookjes of computerspellen, zal hij onmiddellijk de volgende zoektocht uitdelen :) Alle bots in Telegram worden geregistreerd en geconfigureerd via de "hoofdbot", wiens naam @BotFather is.

Om een ​​bot toe te voegen, moet u deze daarom eerst registreren bij de “Godfather” van de messenger. In de onderstaande schermafbeelding legt Manybot dit zelf aan ons uit.


3. Oké, laten we naar @BotFather gaan- Trouwens, hij spreekt Engels. Je geeft hem eerst het commando /newbot, waarna hij vraagt ​​naar de naam en “gebruikersnaam” van de bot. De eerste wordt weergegeven als de naam van de chat en de tweede is het ‘adres’ van de bot in het systeem.

Nadat u een naam heeft gekozen (of een vrije naam heeft gevonden die geschikt is), voert u de opdracht /token in. Het is nodig om terug te keren naar Manybot. Trouwens, je kunt als volgt een chatbot in een telegram maken - hij is tenslotte formeel klaar. Het meest interessante blijft: het instellen en de commando's "leren".


4. Kopieer het token en ga terug naar Manybot. Het enige dat overblijft is om de gekopieerde code naar het systeem te sturen en de botbeschrijving te configureren. Dit is een soort CTA: een kleine tekst die nieuwe gebruikers begroet. Leg uit waarom een ​​telegrambot nodig is voor potentiële klanten en waarom ze zich erop zouden moeten abonneren.


5. Manybot heeft een link naar uw bot geretourneerd. Het kan al een aantal dingen doen - door bijvoorbeeld de opdracht /start te gebruiken, wordt de eerder ingevoerde tekst en het ontwikkelaarsmenu weergegeven. Let op: de functies na de tekst “Gebruik/uit om je abonnement te pauzeren” zijn niet zichtbaar en niet beschikbaar voor gewone gebruikers.

Interacties met bots zijn gebaseerd op commando's - dus we zullen er verschillende voor de onze maken. Selecteer /opdrachten.


6. Creëer een team. Trouwens, als het verwarrend is waar de nauwelijks geregistreerde bot zijn interface en commando's vandaan heeft - laten we herhalen: dit is de interface van de Manybot-service. Uw klanten zullen de functionaliteit niet zien. Het botplatform vraagt ​​u dus om een ​​teamnaam te kiezen.


7. Nu gaan we de hoofdmenuknop maken, gebonden aan het team. Selecteer de items: “Het hoofdmenu aanpassen” / “Menu-item toevoegen”, selecteer het commando (“/read_news” in ons geval) en stel de naam van het item in (voor ons is dit “Nieuwe artikelen”).


8. De onderstaande schermafbeelding is een “testrun” van ons team. Werkt als een klok :)


9. Voeg een gerandomiseerde nieuwsbrief toe. Selecteer het menu-item "Willekeurige berichtmodus inschakelen" en voeg berichten toe aan het team - van twee tot enkele honderden, de limiet is niet gespecificeerd. Op verzoek van de gebruiker zal het systeem dus een van deze berichten in willekeurige volgorde plaatsen.

We hebben besloten om de opdracht /random_article toe te voegen, gekoppeld aan het item “Get random Article”. Er zijn drie berichten aan het team toegevoegd met links naar blogposts van RoboMarketing.

De onderstaande schermafbeeldingen laten zien hoe we het hebben gedaan:

En nog een “proefrit”. Werkt prima :)

In plaats van een conclusie

Dit zijn natuurlijk de basisprincipes: slechts twee elementaire punten. Maar nu krijg je een idee hoe je een telegrambot voor dummies kunt maken. Je beschikt over een basis die wordt uitgebreid door het lezen van artikelen, het bestuderen van programmeertalen en zelfstudie in het algemeen.

Manybot is verre van de enige dienst. Er is een Engelstalige Meya voor meer gevorderde botbouwers, ChatFuel voor Facebook Messenger en een hele reeks andere opties... waarover we het in de volgende materialen zullen hebben 😉