Telegram bot bez programování. Píšeme bota v telegramu v php - hotové příklady. Proč flibusta bot nefunguje v telegramu

Roboti v telegramu jsou programy, které automaticky provádějí určité akce a reagují na uživatelské příkazy. Vývojáři messengeru podporují jejich tvorbu, a proto je lídrem v počtu robotů. Jak vytvořit telegramového bota pro vaši firmu nebo pro běžné použití? Zvažme možnosti a technologie.

Stávající možnosti

Existují tři způsoby, jak vytvořit robota v Telegramu:

  1. Vytvořte v konstruktoru. Může to být jiná služba pro odesílání zpráv, například @manybot. Nebo online shell, jako je Chatfuel.
  2. Nezávislý vývoj. Chcete-li to provést, musíte mít dovednosti v programování a nasazování serverových aplikací, počínaje instalací softwaru.
  3. Nákup. V současné době existuje mnoho společností a soukromých vývojářů, kteří nabízejí produkty na míru. Ceny začínají na 500 rublech, ale průměrně 10-15 tisíc.

Pokud máte čas a nějaké softwarové dovednosti, doporučujeme zkusit si jej vytvořit v návrháři. To vám pomůže pochopit, jak programy fungují, což bude užitečné při objednávání, pokud se tak rozhodnete.

Proces programování


Robota Telegram si můžete vytvořit sami, ale pouze pokud umíte programovat. Obecně schéma vývoje vypadá takto:

  1. Psaní podrobných technických specifikací. Pomůže zvýraznit hlavní požadavky na program a strukturovat proces.
  2. Výběr programovacího prostředí.
  3. Nákup hostingu nebo shánění hostingu zdarma. Jeho požadavky jsou dány zvoleným prostředím. Například pro vývoj na PHP je vyžadován SSL certifikát.
  4. Nastavení softwaru.
  5. Kódování.
  6. Rozkládání. Obtížnost závisí na zvoleném prostředí. Pro Python je to celý proces, ale v PHP se vše dělá relativně jednoduše.
  7. Ladění.

Tento proces je poměrně složitý a vyžaduje mnoho dovedností. Jak tedy vidíte, ne každý dokáže napsat robota pro Telegram sám.

Programovací jazyky

Jak vytvořit robota v telegramu a jaký jazyk je lepší zvolit? V zásadě si můžete vybrat jakýkoli jazyk, který podporuje programování serveru a odesílání požadavků přes protokol https. Nejčastěji pro , také C++, C#, Ruby.

Propojení platby

Mnoho služeb je navrženo tak, aby zjednodušilo proces online nakupování. Vývoj využívá metody Payment API, které umožňují propojit platební systémy s programem. Proces se provádí podle algoritmu:

  1. Vývojář vloží klíče a vybere poskytovatele připojeného k systému pro provádění transakcí.
  2. V robotu se objeví tlačítko „Zaplatit“.
  3. Uživatel robota může provádět platby poskytnutím svých údajů. Jsou propojeny s jeho účtem. K dispozici jsou také mobilní platby.
  4. Finanční transakce se provádějí přímo mezi klientem a platebním systémem. Telegram není zapojen do tohoto procesu. Jeho úkolem je poskytnout platformu pro implementaci funkcí. Z tohoto důvodu nejsou platební údaje dostupné třetím stranám.
  5. Zákazník obdrží zprávu o transakci, která obsahuje všechny podrobnosti o nákupu.

Vývojáři messengerů zároveň nepřijímají žádné reklamace a veškerou odpovědnost přesouvají na platební systém a samotného uživatele.

Slibují ale blokování nespolehlivých poskytovatelů na základě recenzí. Dnes můžete v Telegramu vytvořit robota, který bude prodávat za Qiwi a Yandex.Money.

Vytvořte si robota sami

Simulátor telegramu je program, který se spouští a pracuje na vaší straně. Odesílá požadavky do Telegram Bot API, což je docela jednoduché:

  • Program přistupuje k nastaveným parametrům odkazem;
  • Telegram odpoví polem JSON.

V telegramu můžete místo ručního nahrávání zpráv nainstalovat webhook, aby každý dopis posílal sám. Pro vytvoření telegramového bota v Pythonu je lepší použít nějaký druh reaktoru, například tornado.web.

Než vytvoříte telegramového robota a spustíte jej, musíte přejít na požadovanou adresu a zachytit výstupní signál. To se provádí, aby se vrátilo chování událostí ručního vykládání.

Logika bude ve třídě tornado.web.RequestHandler, kterou reaktor přijímá pro zpracování požadavků.

CMD je zkratka pro slovník všech dostupných příkazů. Send_reply je funkce pro odeslání odpovědi. Přijímá hotové pole zpráv.

Týmy

Nejprve musíte program robota Telegram naučit konstanty /start a /help:

Objekt message['from'] je pole typu User. Z něj robot přijímá uživatelská data, jeho ID a jméno. Bude lepší, když funkce odpovědi bude patřit ke zprávě['chat']['id']. Takže při komunikaci bude uživatel a v případě chatu - id toho druhého.

Instalace /start má dvě funkce najednou:

K zobrazení dat o robotu je potřeba příkaz bez parametrů;
s parametry – pro identifikaci.

Nyní můžete vytvořit libovolný vlastní úkol. Například /base64.

Pro ty, kteří používají mobilní telegram, bude užitečné dát @BotFather seznam příkazů, které by měl nový virtuální partner přijmout:

Pokud chce uživatel telegramu vidět seznam dostupných úkolů (například zjistit, jak po dokončení úkolu zabít program), bude muset napsat „/“.

Jak naučit robota mluvit

Telegram odešle celou zprávu. Omezení nutnosti uvádět příkazy lomítkem bylo vytvořeno pouze pro pohodlí uživatelů. To vám umožní naučit program reagovat jako lidská bytost. Abyste jí dali možnost přijímat všechny zprávy ve skupinách, musíte napsat /setprivacy asistentovi @BotFather, čímž deaktivujete soukromí.

Do Handleru byste měli přidat handler:

Seznam příkazů musí obsahovat řeč:

Hodnota 75 zde představuje pravděpodobnost toho, co chce uživatel říci. Konstanta format_map je vhodná pro popis řetězců, které vyžadují substituci.

Tímto způsobem bude bot schopen odpovídat na pozdravy a oslovit účastníka jménem.

Odeslané zprávy mohou být nejen textové

Nyní, když víte, jak vytvořit telegramového robota, můžete umožnit nejen psát fráze, ale také sdílet obrázky a zvukové soubory.

Slovník ODPOVĚDI můžete rozšířit například takto:

A zachytíme zprávy:

Nyní objekt Message neobsahuje text, takže musíte změnit send_reply:

Takže robot někdy pošle obrázek místo času:

Jak vidíte, vytvořit virtuálního partnera telegramu a naučit ho komunikovat není vůbec obtížné. Můžete jej kdykoli smazat pomocí jiného příkazu odeslaného @BotFather.

Vytváříme jednoduchého robota pro publikování zpráv na kanálu a automatické zodpovídání otázek v 6 krocích.

Do záložek

Materiál připravený s podporou

Po vzrušených diskusích v IT tisku o účinnosti chatbotů našli své místo v ekosystému uživatelů a společností. Projekty například často implementují roboty, kteří upozorňují na určité události, a podpůrné služby je používají k rychlému zodpovězení často kladených otázek od zákazníků.

V tomto tutoriálu se podíváme na nejjednodušší způsob, jak vytvořit robota vlastníma rukama, a vysvětlíme, jak to funguje.

Začněme vývojem robota, který dokáže automaticky posílat firemní novinky publikované na webu nebo Facebooku na kanál Telegram.

Krok 1. Vytvořte robota v Telegramu

Robot Telegram je vytvořen pomocí jiného robota s názvem BotFather. Pošleme mu příkaz /newbot, vybereme jméno, které se zobrazí v seznamu kontaktů, a adresu. Například „Bot for DTF“ s adresou „dtf_news_bot“.

Pokud adresa není obsazená a jméno je zadáno správně, BotFather odpoví zprávou s tokenem – „klíčem“ pro přístup k vytvořenému botovi. Musí se uchovávat a nikomu neukazovat.

Prostřednictvím BotFather můžete také přidat avatara pro robota, popis atd.

Krok 2. Vytvořte kanál v telegramu

Nyní vytvoříme kanál s libovolným názvem a adresou a přejdeme do jeho nastavení. Vše, co je potřeba, je přidat robota, kterého jsme vytvořili, do seznamu administrátorů – bude to ten, kdo bude publikovat poznámky do kanálu.

Chcete-li vyhledat robota, můžete použít jeho adresu. Například „dtf_news_bot“.

Krok 3: Vytvořte podmínku

Další fází je naučit robota odesílat novinky z webu do vytvořeného kanálu. K tomu nám poslouží oblíbená automatizační služba IFTTT.

S jeho pomocí můžete vytvořit pokyny pro práci robota. V našem případě to vypadá takto: pokaždé, když se v RSS kanálu stránky objeví nový záznam, musí odeslat zprávu na kanál Telegram.

IFTTT znamená If This Then That

Přejděte do sekce IFTTT „Moje aplety“, klikněte na tlačítko „Nový aplet“ a poté na odkaz „Toto“. Najděte v seznamu funkcí spouštěč Feed, New feed item a uveďte URL našeho RSS kanálu. Například pro weby Wordpress se obvykle nachází na adrese example.com/feed/.

Místo RSS kanálu můžete sledovat vzhled nových příspěvků na svém Twitteru nebo Facebooku – IFTTT má pro každou funkci samostatné moduly.

Nyní přejděme k druhému kroku – vyberte akci, která se provede při detekci nového záznamu v RSS. Klikněte na „To“ a vyhledejte Maker Webhook, „Vytvořit webový požadavek“ – pomocí tohoto modulu můžete posílat požadavky libovolným službám. V našem případě - robotovi v Telegramu.

Ve formuláři, který se otevře, musíte v poli URL zadat odkaz https://api.telegram.org/bot ŽETON/sendMessage, přičemž do něj nahradí token vygenerovaný v prvním kroku. Metoda: POST, typ obsahu: application/json.

Tělo – pole pro šablonu požadavku, která bude odeslána do telegramu. V něm uvádíme, na který kanál má být zpráva odeslána a co v ní má být napsáno:

("chat_id":"@channel_address", "text":"((EntryTitle)) ((FeedUrl))")

  • chat_id- adresa kanálu, na který má být zpráva odeslána. Jeden robot tak může být připojen k několika kanálům najednou. Můžete také určit konkrétního uživatele jako příjemce. V tomto případě musíte místo adresy kanálu zadat jeho ID (lze získat pomocí robota).
  • text- obsah zprávy. Například název materiálu z RSS (EntryTitle), jeho obsah (EntryContent) a odkaz (FeedUrl). Seznam dostupných možností lze zobrazit kliknutím na tlačítko Ingredient.

Pokud je vše správně nakonfigurováno, robot odešle zprávu z RSS kanálu do kanálu. Spoušť v IFTTT má zpoždění, takže zpráva, která se objeví v RSS feedu, nebude odeslána do Telegramu hned, ale po 30-60 minutách.

Jako podmínku pro odeslání zprávy můžete vybrat jakýkoli jiný scénář dostupný na IFTTT. Například Weather Underground může každý den poslat zprávu s předpovědí počasí na zítra. Spouštěč akcií lze nakonfigurovat tak, aby odeslal ceny akcií na konci obchodu.

Nyní budeme řešit složitější problém – vytvořeného bota naučíme reagovat na zprávy uživatelů. Například zaslat ceník, kontakty nebo odpovědět na časté dotazy klientů.

Krok 4. Připojte server

V této fázi budete potřebovat webhosting a SSL certifikát, který lze zdarma získat pomocí služby Let's Encrypt.

Nejpohodlnějším způsobem je vytvořit pro bota samostatnou subdoménu – například bot.example.com – a umístit na ni jeden soubor index.php. Do souboru umístíme kód jednoduchého robota z webu Telegram.

V kódu bota musíte provést pouze dvě změny:

  • v souladu define("BOT_TOKEN", "12345678:nahraďte-mě-za-skutečný-token"); místo 12345678:replace-me-with-real-token napište token získaný v prvním kroku;
  • v souladu define("URL_WEBHOOK", "https://my-site.example.com/secret-path-for-webhooks/"); Místo https://my-site.example.com/secret-path-for-webhooks/ zadejte adresu URL souboru s kódem pro robota: https://bot.example.com/index.php.

Krok 5. Propojení robota Telegram a serveru

Nyní musíme propojit telegram a soubor na serveru, aby požadavky zaslané robotovi v messengeru byly zpracovány naším skriptem.

K tomu budete potřebovat konzoli. U různých poskytovatelů hostingu může být umístěn v různých částech rozhraní pro správu webu. Zadáním příkazu můžete také použít program Terminál v systému macOS ssh uživatelské jméno@adresa domény.

Po zadání hesla vytiskneme jednoduchý příkaz pro naši subdoménu :

php -f /var/www/bot.example.com/index.php

Rád vás poznávám – odpověď robota na zprávu zaslanou uživatelem.

Níže v kódu přidáváme další odpovědi. Například tak, že v závislosti na odeslaném slově robot odešle uživateli potřebné informace (jako v

Napíšeme mu /start a získáme seznam všech jeho příkazů.
První a hlavní - /newbot - mu to pošleme a bot ho požádá, aby vymyslel jméno pro našeho nového bota. Jediným omezením názvu je, že musí končit „bot“. Pokud bude úspěšná, BotFather vrátí token bota a odkaz pro rychlé přidání bota do vašich kontaktů, jinak si budete muset lámat hlavu nad jménem.

To už pro začátek stačí. Ti, kteří jsou obzvláště pedantští, již zde mohou robotovi přiřadit avatara, popis a uvítací zprávu.

Nezapomeňte zkontrolovat přijatý token pomocí odkazu api.telegram.org/bot /getMe , říkají, ne vždy funguje napoprvé.

2. Programování

Bota vytvořím v Pythonu3, ale vzhledem k přiměřenosti tohoto jazyka lze algoritmy snadno přenést do jakéhokoli jiného.

Telegram vám umožňuje nenahrávat zprávy ručně, ale nainstalovat webHook, a pak si každou zprávu pošlou sami. Pro Python, abych se netrápil s cgi a vlákny, je vhodné použít nějaký reaktor, proto jsem pro implementaci zvolil tornado.web. (pro GAE je vhodné použít kombinaci Python2+Flask)

Spodní rám:

URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN MyURL = "https://example.com/hook" api = request.Session() application = tornado.web.Application([ ( r"/", Handler), ]) if __name__ == "__main__": signal.signal(signal.SIGTERM, signal_term_handler) zkuste: set_hook = api.get(URL + "setWebhook?url=%s" % MyURL) if set_hook.status_code != 200: logging.error("Nelze nastavit háček: %s. Ukončit." % set_hook.text) exit(1) application.listen(8888) tornado.ioloop.IOLoop.current().start () kromě KeyboardInterrupt: signal_term_handler(signal.SIGTERM, None)
Zde při spouštění bota nainstalujeme na naši adresu webhook a zachytíme výstupní signál, abychom vrátili chování s ručním vykládáním událostí.

Aplikace tornado pro zpracování požadavků přijímá třídu tornado.web.RequestHandler, která bude obsahovat logiku bota.

Class Handler(tornado.web.RequestHandler): def post(self): try: logging.debug("Mám požadavek: %s" % self.request.body) update = tornado.escape.json_decode(self.request.body) message = update["message"] text = message.get("text") if text: logging.info("MESSAGE\t%s\t%s" % (zpráva["chat"]["id"], text)) if text == "/": příkaz, *arguments = text.split(" ", 1) odpověď = CMD.get(příkaz, nenalezeno)(argumenty, zpráva) logging.info("ODPOVĚDĚT\t%s \t%s" % (zpráva["chat"]["id"], odpověď)) send_reply(response) kromě výjimky jako e: logging.warning(str(e))
CMD je zde slovník dostupných příkazů a send_reply je funkce pro odeslání odpovědi, která jako vstup bere již vygenerovaný objekt Message.

Ve skutečnosti je jeho kód docela jednoduchý:

Def send_reply(response): if "text" v odpovědi: api.post(URL + "sendMessage", data=response)

Nyní, když je popsána veškerá logika robota, můžete pro něj začít vymýšlet příkazy.

3. Týmy

Nejprve musíte dodržovat konvenci telegramu a naučit robota dva příkazy: /start a /help:

Def help_message(argumenty, zpráva): response = ("chat_id": message["chat"]["id"]) result = ["Ahoj, %s!" % message["from"].get("first_name"), "\rMohu přijmout pouze tyto příkazy:"] pro příkaz v CMD: result.append(command) response["text"] = "\n\t" .join(výsledek) vrátí odpověď

Struktura message["from"] je objekt typu User , poskytuje botovi informace jak o id uživatele, tak o jeho jménu. Pro odpovědi je užitečnější použít message["chat"]["id"] - v případě osobní komunikace bude uživatel a v případě chatu - ID chatu. V opačném případě se můžete dostat do situace, kdy uživatel napíše do chatu a bot odpoví v osobní zprávě.

Příkaz /start bez parametrů je určen k zobrazení informací o botovi a s parametry je určen k identifikaci. Je užitečné jej používat pro akce, které vyžadují autorizaci.

Poté můžete přidat některé z vašich vlastních příkazů, například /base64:

Def base64_decode(argumenty, zpráva): response = ("chat_id": zpráva["chat"]["id"]) try: response["text"] = b64decode(" ".join(arguments).encode("utf8" ")) kromě: response["text"] = "Nelze to dekódovat" konečně: vrátit odpověď

Pro uživatele mobilního telegramu bude užitečné říci @BotFather, jaké příkazy náš bot přijímá:
I: /setcommands
BotFather: Výběrem robota změníte seznam příkazů.
Já: @********_bot
Oba Otec: Dobře. Pošlete mi seznam příkazů pro vašeho robota. Použijte prosím tento formát:

Command1 - Popis
command2 - Další popis
já:
whoisyourdaddy - informace o autorovi
base64 - dekódování Base64
BotFather: Úspěch! Seznam příkazů aktualizován. /Pomoc

S tímto popisem, pokud uživatel zadá /, Telegram užitečně zobrazí seznam všech dostupných příkazů.

4. Svoboda

Jak můžete vidět, Telegram posílá celou zprávu, nikoli rozdělenou, a omezení, že příkazy začínají lomítkem, je pouze pro pohodlí mobilních uživatelů. Díky tomu můžete bota naučit mluvit trochu lidsky.

UPD: Jak správně naznačili, stane se tak pouze osobní komunikací. V chatech se zobrazují pouze zprávy začínající příkazem (/ ) (https://core.telegram.org/bots#privacy-mode)

Aby robot dostával všechny zprávy ve skupinách, napište příkaz @BotFather /setprivacy a vypnout soukromí.

Nejprve přidejte handler do Handleru:

If text == "/": ... else: response = CMD[" "](zpráva) logging.info("REPLY\t%s\t%s" % (zpráva["chat"]["id"], odpověď)) send_reply(response)
A pak přidáme pseudořeč do seznamu příkazů:

ODPOVĚDI = ( "Dobrý den": ["Ahoj!", "Ahoj!", "Vítejte!", "Dobrý den, (jméno)!"], "Ahoj": ["Dobrý den!", "Dobrý den, (jméno ) )!", "Ahoj!", "Vítejte!"], "Ahoj!": ["Ahoj!", "Dobrý den, (jméno)!", "Vítejte!", "Dobrý den!"], "Vítejte " : ["Ahoj!", "Ahoj!", "Ahoj!", "Dobrý den, (jméno)!",], ) def human_response(message): leven = fuzzywuzzy.process.extract(message.get(" text ", ""), RESPONSES.keys(), limit=1) response = ("chat_id": zpráva["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
Empirická konstanta 75 zde poměrně dobře odráží pravděpodobnost, kterou chtěl uživatel skutečně říci. A format_map je vhodný pro stejný popis řetězců vyžadujících substituci i bez ní. Nyní bude robot reagovat na pozdravy a někdy vám dokonce zavolá jménem.

5. Ne text.

Boti, jako každý normální uživatel telegramu, mohou nejen psát zprávy, ale také sdílet obrázky, hudbu a nálepky.

Rozbalme například slovník ODPOVĚDI:

ODPOVĚDI["Kolik je hodin?"] = [" ", "(datum) UTC"]
A my se chytíme textu :

Pokud odpověď["text"] == " ": response["sticker"] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC" del response["text"]
Je vidět, že nyní struktura zprávy již neobsahuje text, takže je nutné upravit send_reply:

Def send_reply(response): if "nálepka" v odpovědi: api.post(URL + "sendSticker", data=response) elif "text" v odpovědi: api.post(URL + "sendMessage", data=response)
A je to, nyní robot místo času občas pošle nálepku:

6. Příležitosti

Díky pohodlí API a rychlému startu se roboti Telegramu mohou stát dobrou platformou pro automatizaci svých akcí, nastavování upozornění, vytváření kvízů a soutěží založených na úkolech (CTF, DozoR a další).

Když se ohlédnu zpět, mohu říci, že nyní je méně zvráceností a práce je transparentnější.

7. Omezení

Bohužel v tuto chvíli je omezení použití webHooku - funguje pouze přes https a pouze s platným certifikátem, což je například pro mě stále kritické kvůli chybějící podpoře dynamického DNS ze strany certifikačních autorit.

Naštěstí Telegram umí pracovat i s manuálními aktualizacemi, takže bez změny kódu můžete vytvořit další službu Puller, která je stáhne a pošle na místní adresu:

Zatímco True: r = request.get(URL + "?offset=%s" % (poslední + 1)), pokud r.status_code == 200: pro zprávu v r.json()["result"]: last = int (zpráva["update_id"]) requirements.post("http://localhost:8888/", data=json.dumps(message), headers=("Content-type": "application/json", "Accept" : "text/plain")) else: logging.warning("FAIL " + r.text) time.sleep(3)

P.S. Pokud jde o bod 7, našel jsem pohodlné řešení - hostování robota ne doma, ale na Heroku, protože všechna jména jako *.herokuapp.com jsou chráněna vlastním certifikátem.

UPD: Telegram vylepšil Bot Api, a proto již není nutné mít samostatnou funkci pro odesílání zpráv, když je nainstalován webhook, a v reakci na požadavek POST můžete odpovědět stejným vygenerovaným JSON zprávou s odpovědí , kde jedno z polí je nastaveno jako h "method": "sendMessage" (nebo jakákoli jiná metoda používaná robotem).

Štítky: Přidat štítky

Obsahový marketing

Jak vytvořit robota v telegramu bez programátorských dovedností?

Potřebujete vlastního chatbota? Chcete-li jej navrhnout, nemusíte vlastnit kód: moderní technologie a bezplatné služby umožňují vytvořit telegramového robota bez programování, rychle a snadno.

Pokud potřebujete jednoduchý produkt bez umělé inteligence, pak to zvládnete sami. Dnes si rozebereme proces vytvoření a nastavení základního chatbota: jako příklad použijeme službu Manybot.

Ale nejdřív teorie :)

Proč jsou boti potřeba v Telegramu, Facebooku, WhatsAppu a dalších messengerech jsme již psali – ale budeme se opakovat. Pokud věříte číslům, chatboti se stanou „další velkou věcí“ - například publikum instant messengerů již přesáhlo publikum sociálních sítí a mezera se stále zvětšuje. Výhody robotů pro publikum jsou zřejmé. To je pohodlné: rezervují vstupenky, objednávají jídlo, objednávají taxíky, vyhledávají informace a jsou vhodné pro mnoho dalších funkcí. Zajímavé příležitosti se otevírají i pro podnikání:

  • nový marketingový kanál;
  • nízká (stále) konkurence;
  • vysoká interaktivita (boti se dobře zapojují do interakce);
  • skutečný přínos nástroje (pokud jej poskytnete, vytvoříte hodnotu a posílíte image značky).

Zhruba takto fungují telegramoví roboti, aby vytvořili „tvář“ firmy. Mimochodem, váš vlastní chatovací partner dodá vaší společnosti „progresivní“ šmrnc - koneckonců je to v Rusku hlasitý, ale stále vzácný trend.

Jak fungují chatboti?

Podívejme se na principy fungování takových programů. Existují dva typy robotů. První jsou „přímé“, založené na příkazech, zatímco druhé jsou obdařeny umělou inteligencí. U prvního je to jasnější - jejich „nervový systém“ podléhá přísným algoritmům a pravidlům. "Pokud uživatel odešle požadavek A, udělám B." Železná a bez výkladu.

Jak ale fungují telegramoví roboti „zatížení“ vědomím? Spoléhají na strojové učení a dolování dat. Chcete-li plně prozkoumat tyto pojmy, musíte napsat dizertační práci. Ale jde o to, vytvořit algoritmy, které se mohou učit. Existují dva způsoby: induktivní (učení pomocí hledání obecných vzorců) a deduktivní – učení se stažením celého pole dat. Zda má druhý způsob něco společného se samoučícími se systémy, je stále kontroverzní. A s největší pravděpodobností ne. Proto je v moderní vědě zvykem považovat algoritmy strojového učení za fungující induktivně – hledat vzory v datech a interpretovat je.

Ale nechme matematiku za sebou. Speciální platformy s „lidským“ rozhraním vědí, jak funguje telegramový robot – a to stačí k jeho vytvoření bez vlastnictví kódu.

Spuštění robota bez znalosti kódu

Vraťme se k tématu článku - promluvme si o vytvoření telegramového chatovacího bota pomocí služby Manybot. Vybrali jsme si ho z několika důvodů. Hlavní věc je, že dnes je to nejvhodnější řešení v ruštině s jednoduchým rozhraním. Systém skutečně pomáhá při vytváření robota ve všech fázích a nevyžaduje znalost kódu nebo API. V angličtině existují alternativy, ale ty jsou buď složitější, nebo nejsou s telegramovým messengerem „přátelské“. Takže zatím - Manybot :)

Tuto platformu vytvořil Mikael Jan, syn zakladatele Abbyy a talentovaný podnikatel sám o sobě. Ale tady nejde o něj, ale o jeho duchovní dítě. Manybot je chatbot, který vám pomůže přizpůsobit robota. Podívejme se na proces krok za krokem.

1. Na webu přejděte na CTA„Otevřít Manybot v Telegramu“ - akce předpokládá, že již máte účet v messengeru :)

2. Tím se dostanete k robotovi asistenta. Po pozdravu, jako v pohádkách nebo počítačových hrách, okamžitě rozdá další úkol :) Všichni roboti v Telegramu jsou registrováni a konfigurováni prostřednictvím „hlavního bota“, jehož jméno je @BotFather.

Proto, chcete-li přidat robota, musíte jej nejprve zaregistrovat u „kmotra“ posla. Na níže uvedeném snímku obrazovky nám to vysvětluje samotný Manybot.


3. Dobře, pojďme na @BotFather- Mimochodem, mluví anglicky. Nejprve mu dáte příkaz /newbot, po kterém se zeptá na jméno a „uživatelské jméno“ robota. První se zobrazí jako název chatu a druhý bude „adresa“ robota v systému.

Po výběru jména (nebo nalezení volného z těch, které jsou vhodné), zadejte příkaz /token. Je potřeba se vrátit k Manybotovi. Mimochodem, zde je návod, jak vytvořit chatovací robot v telegramu - koneckonců, formálně je připraven. To nejzajímavější zůstává - nastavení a „učení“ příkazů.


4. Zkopírujte token a vraťte se k Manybotovi. Zbývá pouze odeslat zkopírovaný kód do systému a nakonfigurovat popis bota. Jedná se o druh CTA - malý text, který vítá nové uživatele. Vysvětlete, proč je pro potenciální klienty potřebný telegramový robot a proč by si jej měli předplatit.


5. Manybot vrátil odkaz na vašeho robota. Některé věci už umí – například pomocí příkazu /start zobrazí dříve zadaný text a nabídku vývojáře. Poznámka: funkce za textem „Použít /vypnout k pozastavení předplatného“ nejsou viditelné a nejsou dostupné běžným uživatelům.

Interakce s roboty jsou založeny na příkazech - takže jich vytvoříme několik pro naše. Vyberte /příkazy.


6. Vytvořte tým. Mimochodem, pokud je matoucí, odkud pochází rozhraní a příkazy pro sotva registrovaného robota - zopakujme, toto je rozhraní služby Manybot. Vaši klienti tuto funkci neuvidí. Platforma botů vás tedy požádá o výběr názvu týmu.


7. Nyní uděláme tlačítko hlavního menu, svázaný s týmem. Vyberte položky: „Přizpůsobit hlavní menu“ / „Přidat položku nabídky“, vyberte příkaz („/read_news“ v našem případě) a nastavte název položky (pro nás je to „Nové články“).


8. Níže uvedený snímek obrazovky je „zkušební provoz“ našeho týmu. Funguje jako hodinky :)


9. Přidejte náhodný newsletter. Vyberte položku nabídky „Povolit režim náhodných zpráv“ a připojte příspěvky k týmu - od dvou do několika stovek, limit není určen. Takže na žádost uživatele systém vydá jeden z těchto příspěvků v náhodném pořadí.

Rozhodli jsme se přidat příkaz /random_article vázaný na položku „Získat náhodný článek“. K týmu jsou připojeny tři zprávy s odkazy na blogové příspěvky RoboMarketing.

Níže uvedené snímky obrazovky ukazují, jak jsme to udělali:

A další „zkušební provoz“. Funguje skvěle :)

Místo závěru

To jsou samozřejmě samé základy – jen dva elementární body. Ale teď získáte představu o tom, jak vytvořit telegramového robota pro figuríny. Máte základnu, která se rozšiřuje o čtení článků, studium programovacích jazyků a sebevzdělávání obecně.

Manybot není zdaleka jediná služba. Pro pokročilejší tvůrce botů je tu anglická Meya, ChatFuel pro Facebook Messenger a spousta dalších možností... o kterých si povíme v následujících materiálech 😉

Vytváříme jednoduchého robota pro publikování zpráv na kanálu a automatické zodpovídání otázek v 6 krocích.

Do záložek

Materiál připravený s podporou

Po vzrušených diskusích v IT tisku o účinnosti chatbotů našli své místo v ekosystému uživatelů a společností. Projekty například často implementují roboty, kteří upozorňují na určité události, a podpůrné služby je používají k rychlému zodpovězení často kladených otázek od zákazníků.

V tomto tutoriálu se podíváme na nejjednodušší způsob, jak vytvořit robota vlastníma rukama, a vysvětlíme, jak to funguje.

Začněme vývojem robota, který dokáže automaticky posílat firemní novinky publikované na webu nebo Facebooku na kanál Telegram.

Krok 1. Vytvořte robota v Telegramu

Robot Telegram je vytvořen pomocí jiného robota s názvem BotFather. Pošleme mu příkaz /newbot, vybereme jméno, které se zobrazí v seznamu kontaktů, a adresu. Například „Bot for DTF“ s adresou „dtf_news_bot“.

Pokud adresa není obsazená a jméno je zadáno správně, BotFather odpoví zprávou s tokenem – „klíčem“ pro přístup k vytvořenému botovi. Musí se uchovávat a nikomu neukazovat.

Prostřednictvím BotFather můžete také přidat avatara pro robota, popis atd.

Krok 2. Vytvořte kanál v telegramu

Nyní vytvoříme kanál s libovolným názvem a adresou a přejdeme do jeho nastavení. Vše, co je potřeba, je přidat robota, kterého jsme vytvořili, do seznamu administrátorů – bude to ten, kdo bude publikovat poznámky do kanálu.

Chcete-li vyhledat robota, můžete použít jeho adresu. Například „dtf_news_bot“.

Krok 3: Vytvořte podmínku

Další fází je naučit robota odesílat novinky z webu do vytvořeného kanálu. K tomu nám poslouží oblíbená automatizační služba IFTTT.

S jeho pomocí můžete vytvořit pokyny pro práci robota. V našem případě to vypadá takto: pokaždé, když se v RSS kanálu stránky objeví nový záznam, musí odeslat zprávu na kanál Telegram.

IFTTT znamená If This Then That

Přejděte do sekce IFTTT „Moje aplety“, klikněte na tlačítko „Nový aplet“ a poté na odkaz „Toto“. Najděte v seznamu funkcí spouštěč Feed, New feed item a uveďte URL našeho RSS kanálu. Například pro weby Wordpress se obvykle nachází na adrese example.com/feed/.

Místo RSS kanálu můžete sledovat vzhled nových příspěvků na svém Twitteru nebo Facebooku – IFTTT má pro každou funkci samostatné moduly.

Nyní přejděme k druhému kroku – vyberte akci, která se provede při detekci nového záznamu v RSS. Klikněte na „To“ a vyhledejte Maker Webhook, „Vytvořit webový požadavek“ – pomocí tohoto modulu můžete posílat požadavky libovolným službám. V našem případě - robotovi v Telegramu.

Ve formuláři, který se otevře, musíte v poli URL zadat odkaz https://api.telegram.org/bot ŽETON/sendMessage, přičemž do něj nahradí token vygenerovaný v prvním kroku. Metoda: POST, typ obsahu: application/json.

Tělo – pole pro šablonu požadavku, která bude odeslána do telegramu. V něm uvádíme, na který kanál má být zpráva odeslána a co v ní má být napsáno:

("chat_id":"@channel_address", "text":"((EntryTitle)) ((FeedUrl))")

  • chat_id- adresa kanálu, na který má být zpráva odeslána. Jeden robot tak může být připojen k několika kanálům najednou. Můžete také určit konkrétního uživatele jako příjemce. V tomto případě musíte místo adresy kanálu zadat jeho ID (lze získat pomocí robota).
  • text- obsah zprávy. Například název materiálu z RSS (EntryTitle), jeho obsah (EntryContent) a odkaz (FeedUrl). Seznam dostupných možností lze zobrazit kliknutím na tlačítko Ingredient.

Pokud je vše správně nakonfigurováno, robot odešle zprávu z RSS kanálu do kanálu. Spoušť v IFTTT má zpoždění, takže zpráva, která se objeví v RSS feedu, nebude odeslána do Telegramu hned, ale po 30-60 minutách.

Jako podmínku pro odeslání zprávy můžete vybrat jakýkoli jiný scénář dostupný na IFTTT. Například Weather Underground může každý den poslat zprávu s předpovědí počasí na zítra. Spouštěč akcií lze nakonfigurovat tak, aby odeslal ceny akcií na konci obchodu.

Nyní budeme řešit složitější problém – vytvořeného bota naučíme reagovat na zprávy uživatelů. Například zaslat ceník, kontakty nebo odpovědět na časté dotazy klientů.

Krok 4. Připojte server

V této fázi budete potřebovat webhosting a SSL certifikát, který lze zdarma získat pomocí služby Let's Encrypt.

Nejpohodlnějším způsobem je vytvořit pro bota samostatnou subdoménu – například bot.example.com – a umístit na ni jeden soubor index.php. Do souboru umístíme kód jednoduchého robota z webu Telegram.

V kódu bota musíte provést pouze dvě změny:

  • v souladu define("BOT_TOKEN", "12345678:nahraďte-mě-za-skutečný-token"); místo 12345678:replace-me-with-real-token napište token získaný v prvním kroku;
  • v souladu define("URL_WEBHOOK", "https://my-site.example.com/secret-path-for-webhooks/"); Místo https://my-site.example.com/secret-path-for-webhooks/ zadejte adresu URL souboru s kódem pro robota: https://bot.example.com/index.php.

Krok 5. Propojení robota Telegram a serveru

Nyní musíme propojit telegram a soubor na serveru, aby požadavky zaslané robotovi v messengeru byly zpracovány naším skriptem.

K tomu budete potřebovat konzoli. U různých poskytovatelů hostingu může být umístěn v různých částech rozhraní pro správu webu. Zadáním příkazu můžete také použít program Terminál v systému macOS ssh uživatelské jméno@adresa domény.

Po zadání hesla vytiskneme jednoduchý příkaz pro naši subdoménu :

php -f /var/www/bot.example.com/index.php

Rád vás poznávám – odpověď robota na zprávu zaslanou uživatelem.

Níže v kódu přidáváme další odpovědi. Například tak, že v závislosti na odeslaném slově robot odešle uživateli potřebné informace (jako v




Horní