Jak vytvořit robota na telegramu. Jaké funkce má bot? Proč je to potřeba?

Pokračujeme v sérii článků věnovaných psaní chatbotů pro sociální sítě v PHP. Minule jsme vytvořili bota pro Telegram a tentokrát vám řeknu, jak vytvořit podobného bota pro VKontakte. Při pohledu do budoucna řeknu, že dnes nebudeme používat VKshny PHP SDK a náš bot se bude skládat pouze z jednoho souboru (o SDK si povíme jindy).

Stejně jako v případě robota Telegram budeme potřebovat minimální znalosti programování v PHP, hosting a SSL certifikát. Jste připraveni? Začněme!

Co bude náš robot umět?

Schopnosti robota jsou omezeny pouze představivostí programátora (vK API naštěstí umožňuje hodně), takže například náš bot bude umět pouze ty nejjednodušší věci, konkrétně:

  1. Odesílat upozornění při připojení ke komunitě;
  2. Odpovědět, pokud uživatel poslal DM do skupinového chatu;
  3. Odeslat upozornění, když uživatel opustí skupinu.

Začněme vytvářet robota

Než začneme psát kód, vytvořme přístupové klíče pro našeho bota. Chcete-li to provést, přejděte do správy komunity, vpravo vyberte „Práce s API“ a klikněte na „Vytvořit klíč“.

Ve vyskakovacím okně zaškrtněte políčka přístupových práv. V našem případě vše, co musíte udělat, je zaškrtnout políčko vedle „ Povolit aplikaci přístup ke zprávám komunity“, ale mějte na paměti, že pro chladnější roboty se vyplatí zaškrtnout políčka u všech položek najednou. Potvrďte akci kliknutím na tlačítko „Vytvořit“.

Nyní přejdeme na záložku Callback API->Server Settings. Zde nás zajímají 3 věci najednou: Adresa, Řetězec, který má server vrátit a Tajný klíč. Adresu zatím vynecháme (obecně ji můžete vyplnit hned, pokud jste se rozhodli, kde bude umístěn hlavní soubor našeho php bota, ale protože samotný soubor ještě nebyl vytvořen, VK bude přísahat , protože ihned po zadání url sociální síť odešle POST požadavek na kontrolu dostupnosti robota na zadané adrese). Zkopírujeme hodnotu naproti „Řetězec, který by měl server vrátit“ (confirmationToken). (v našem případě je tt32e1. Přijde s tajným klíčem. Nezapomeňte kliknout na "Uložit".

Takže na výstupu bychom měli mít někde zapsané 3 věci:

  1. potvrzeníToken
  2. žeton
  3. tajný klíč

Nyní můžete začít psát PHP kód.

Jak vytvořit bota na VK (kódování v php)

Začněme psát soubor pro našeho bota VKontakte. Říkejme tomu vk_bot.php. Připomínám, že kód musí být napsán v kódování UTF-8 (bez BOOM).

Definujme konstanty:

if (!isset($_REQUEST)) (návrat;)
// Řetězec, který by měl server vrátit (viz Callback API->Nastavení serveru)
$confirmationToken = "tt32e1";
// Přístupový klíč komunity (dlouhý řetězec, který jste získali kliknutím na „vytvořit klíč“)
$token = "bude mnoho písmen a číslic";
// Tajný klíč. (Nastaveno v Callback API->Nastavení serveru)
$secretKey = "testKeyMyBot";

Nyní zkontrolujeme přijatá data:

// Příjem a dekódování oznámení
$data = json_decode(file_get_contents("php://vstup"));
// kontrola tajného klíče
if (strcmp($data->secret, $secretKey) !== 0 && strcmp($data->type, "potvrzení") !== 0) (návrat;)

Pomocí přepínače zkontrolujeme, co je v poli „typ“ (jaká událost byla spuštěna a podle toho vygenerujeme odpověď).

// Zkontrolujte, co je v poli "typ".
přepínač ($data->type) (
// Žádost o potvrzení adresy serveru (zaslaná VK)
případ "potvrzení":
echo $confirmationToken; // odeslání řetězce pro potvrzení adresy
přerušení;
// Pokud se jedná o upozornění na novou zprávu...
případ "new_new":

$userId = $data->objekt->id_uzivatele;



$user_name = $userInfo->response->first_name;

$request_params = array(
"message" => "($user_name), Vaše zpráva byla přijata!
Správce skupiny na to brzy odpoví.",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);



přerušení;
}

Malé vysvětlení:

Když uživatel odešle zprávu do chatu se skupinou, spustí se událost. Událost je JSON s následující strukturou:

("typ":<тип события>, "objekt":<объект, инициировавший событие>, "id_skupiny": }

Podle toho, co jsme dostali v typu, můžeme pochopit, jakou strukturu bude mít objekt. Úplný seznam možných událostí naleznete v oficiální nápovědě VKontakte.

V tuto chvíli jsme tedy naučili našeho robota 2 věci: správně reagovat robotovi VK na žádost o ověření a také automaticky odesílat upozornění uživateli, pokud odešle jakýkoli text.

Nyní můžete nahrát náš soubor na server a vyplnit adresu v nastavení (pokud jste to ještě neudělali).

Kromě toho musíte přejít na kartu „Typy událostí“ a zaškrtnout políčko vedle položky „Příchozí zprávy“.

Nyní můžeme zkontrolovat práci:

Jak vidíme, vše funguje. Ve skutečnosti se nám již podařilo vytvořit bota na VK. Trochu to rozpumpujeme.

Ke konstrukci pouzdra přidáme ještě 2 podmínky. Nejprve odešle upozornění, pokud se osoba připojila k naší skupině:

// Událost spuštěna - osoba se připojila ke skupině
case "group_join":
// získat id autora zprávy
$userId = $data->objekt->id_uzivatele;
// přes users.get získáme data o autorovi
$userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids=($userId)&v=5.0"));
// Vytáhněte jméno odesílatele
$user_name = $userInfo->response->first_name;
// Přes messages.send pomocí tokenu komunity odešleme odpověď
$request_params = array(
"message" => "Vítejte ve skupině, ($user_name)!",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?". $get_params);
echo("ok"); // Vraťte "ok" na server Callback API
přerušení;

Druhé je podobné oznámení, ale pouze v okamžiku, kdy osoba opustí komunitu:

// Událost spuštěna - osoba opustila skupinu
case "group_leave":
// získat id autora zprávy
$userId = $data->objekt->id_uzivatele;
// přes users.get získáme data o autorovi
$userInfo = json_decode(file_get_contents("https://api.vk.com/method/users.get?user_ids=($userId)&v=5.0"));
// Vytáhněte jméno odesílatele
$user_name = $userInfo->response->first_name;
// Přes messages.send pomocí tokenu komunity odešleme odpověď
$request_params = array(
"message" => "($user_name), velmi nás mrzí, že jste opustili naši skupinu!",
"user_id" => $userId,
"access_token" => $token,
"v" => "5.0"
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?". $get_params);
echo("ok"); // Vraťte "ok" na server Callback API
přerušení;

Nezapomeňte přidat odpovídající zaškrtávací políčka vedle událostí, které potřebujeme v nastavení skupiny:

Co by roboti neměli dělat

Nebylo by od věci citovat jednu z částí nápovědy VK:

Nyní víte, jak vytvořit svůj vlastní bot na VK. Zdroje lekcí lze stáhnout zde. Příště si povíme něco o práci s PHP SDK pro roboty VK. Pokud máte nějaké dotazy, ptejte se v komentářích. A nezapomeňte tento článek přeposlat a lajkovat)

Bohužel v současné době neexistují žádné dobré knihovny Python2, které by rychle vytvořily chatbota. Níže ukážu, jak snadné je napsat primitivního chatovacího robota pro VK pomocí VK API.


Článek byl napsán pro začátečníky, aby ukázal, že na psaní botů v Pythonu není nic složitého.

Povolení

Budeme potřebovat knihovnu vk_api. Do VK se můžete přihlásit dvěma způsoby:
- Jako uživatel
- Jako komunita


V prvním případě budete muset zadat své uživatelské jméno a heslo. Ve druhém případě musíte ve skupině povolit „Zprávy komunity“ a vytvořit přístupový klíč API:





čas importu import vk_api vk = vk_api.VkApi(login = "přihlášení", heslo = "heslo") #vk_api.VkApi(token = "a02d...e83fd") #Přihlásit se jako komunita vk.auth()

Odesílání zpráv

Nyní si napíšeme krátkou funkci, která odešle zprávu vybrané osobě.


P.S. Komunita může posílat zprávy pouze dříve zveřejněným uživatelům.


def write_msg(user_id, s): vk.method("messages.send", ("user_id":user_id,"message":s))

Ve vk.method můžeme volat libovolnou metodu z VK API a předat parametry jako slovník.


V tomto případě voláme metodu zprávy.odeslat a předat ID uživatele a text zprávy jako parametry.

Přijímání zpráv

Velký! Naučili jsme se posílat zprávy, jen se musíme naučit, jak je přijímat. K tomu potřebujeme metodu zprávy.získat.


Několik parametrů, kterým je třeba věnovat pozornost:


1) out - pokud je tento parametr roven 1, server bude vracet odchozí zprávy.
2) počet – počet zpráv, které je třeba přijmout.
3) time_offset - maximální čas, který uplynul od okamžiku odeslání zprávy do aktuálního okamžiku v sekundách.
4) last_message_id - identifikátor zprávy přijaté před zprávou, kterou je třeba vrátit jako poslední (za předpokladu, že po ní nebylo přijato více než počet zpráv)


values ​​​​= ("out": 0,"count": 100,"time_offset": 60) vk.method("messages.get", values)

V našem případě tato metoda vrátí všechny přijaté zprávy za posledních 60 sekund, pokud jich samozřejmě bylo méně než 100, a pokud více, pak posledních 100.


V důsledku toho získáme seznam položek:


(u"počet": 3441, u"položky": [(u"tělo": u"\u041f\u0438\u0448\u0435\u043c \u0431\u043e\u0442\u0430 \u0434\u43a2\u0\u040 !", u"date": 1491934484, u"id": 7387, u"out": 0, u"read_state": 0, u"title": u" ... ", u"user_id": 23107592) , (u"body": u"\u041f\u0440\u0438\u0432\u0435\u0442 \u0425\u0430\u0431\u0440!", u"date": 1491934479, u"id", u" 73 : 0, u"read_state": 0, u"title": u" ... ", u"user_id": 23107592)])

Jednoduše řečeno, položky jsou to, co lze v dialogu zvýraznit.



Závěrečný akord tvoříme věčný cyklus, kdy na každou zprávu odpovíme „Ahoj, Habr!“


while True: response = vk.method("messages.get", values) if response["items"]: values["last_message_id"] = response["items"]["id"] pro položku v odpovědi["items "]: write_msg(item,u"Ahoj Habr!") time.sleep(1)

Chatbot je připraven.


P.S. Parametr last_message_id si pamatujeme, abychom příště zpracovávali pouze nové zprávy.


Celý kód

# -*- kódování: utf-8 -*- čas importu import vk_api vk = vk_api.VkApi(login = "přihlášení", heslo = "heslo") #vk_api.VkApi(token = "a02d...e83fd") # Přihlaste se jako komunita vk.auth() values ​​​​= ("out": 0,"count": 100,"time_offset": 60) def write_msg(user_id, s): vk.method("messages.send" , ("user_id ":user_id,"message":s)), zatímco True: response = vk.method("messages.get", values) if response["items"]: values["last_message_id"] = response[" items"][ "id"] pro položku v odpovědi["items"]: write_msg(item,u"Ahoj Habr!") time.sleep(1)


Ukázalo se, že je to 17 řádků kódu. Hodně štěstí!


UPD 17.09.2018:
Bohužel v nové verzi (5.80) VK API byla metoda „messages.get“ odstraněna a tento článek ztratil svou relevanci. Nyní použijte systém longpoll k vytvoření robotů. Příklad můžete najít na modulu vk_api pro Python.

Pro nikoho nebude tajemstvím, že automatizace rutinních a monotónních procesů značně usnadňuje život. Navíc se tato skutečnost může týkat nejen vlastníka zdroje, ale i jeho uživatelů. Například osoba kontaktuje komunitu a přímo požaduje kontaktní údaje od vlastníka. Okamžitě obdrží automatickou zprávu obsahující tuto informaci. Uživatel internetu dbá na rychlost získávání informací a podle toho je doporučuje svým příbuzným, přátelům, blízkým a dalším lidem ve svém sociálním okruhu.

Jedna z nejpopulárnějších sociálních sítí v Rusku, VKontakte, není výjimkou.

Pravda, než přejdete přímo k tématu článku, měli byste pochopit, jaké typy robotů (tak se takové programy často nazývají) obecně existují:

  • chatovací asistenti. Tento typ programu se často nachází poblíž a je vždy obtížné jej rozpoznat. Pomáhají výrazně zjednodušit život „výběrem“ rutinních a periodických operací. Živé příklady: vyhledání potřebných informací, nákup nebo výběr zájezdů, objednání jídla dovezeného až domů, rezervace hotelových pokojů atd.;
  • business boti jsou specializované programy napsané v různých programovacích jazycích. Hlavním úkolem je automatizace podnikových procesů a optimalizace, a to jak dočasné, tak funkční. Příklady: zasílání upozornění a zpráv klientům, zaměstnancům, zákazníkům; záznamník atd.;
  • umělá inteligence nebo AI. Brzy se takoví roboti stanou jedinými a pohltí obecný trh vývoje webu. Jejich realizace často vyžaduje mnoho úsilí, času a peněz. Efekt optimalizace a zvýšení efektivity je však prostě úžasný. Takoví roboti jsou schopni odpovědět téměř na jakoukoli uživatelskou otázku. Na jejich základě se často dělají „tutoriály“ v různých hrách a aplikacích (včetně mobilních);
  • herní roboti. Tento vývoj je podtypem umělé inteligence, po které je rovněž rostoucí poptávka. Takové programy často simulují hráče nebo postavu, aby vám pomohly dokončit fázi. Distribuováno v aplikacích na VKontakte.

Když známe odrůdy, pojďme k různým způsobům jejich implementace.

Jak vytvořit robota pro skupinu na VKontakte. 2 hlavní metody.

Realizace přímým využitím zdrojů samotného „VK“.

Uvědomme si hned, že tato metoda je vhodná pro ty vedoucí skupin a jiných veřejných útvarů, kteří mají specializované znalosti v oblasti programování v různých jazycích nebo mají takového zaměstnance ve svém týmu. Další možností je, pokud se chcete naučit, jak sami vytvářet roboty pro skupiny.

Chcete-li zahájit proces, musíte přejít na kartu „Správa“.


Přejděte dolů a podívejte se na podsekci „Komunity“.

Můžete také okamžitě kliknout na stejnojmennou kartu v nabídce vlevo.

Klikněte na „Chatbots“.

Ocitli jsme se na webové stránce, kde jsou popsáni chatboti, jejich výhody a účel jejich vytvoření.

Některé příklady fungujících robotů jsou zobrazeny na následujících snímcích obrazovky:

Nemá smysl plně popisovat vývoj robota pro VK, protože tento proces zabere spoustu času, je často vysoce individuální a závisí na účelu jeho vynálezu. Ale všimneme si těch bodů, které vám mohou velmi pomoci:

    příklady implementací chatbotů (zdroje jsou k dispozici na populárním webovém zdroji GitHub):

    vývoj chatbota pomocí Node JS s možností přidávat nové příkazy.

Ve všech výše uvedených materiálech jsou všechny hlavní body velmi dobře a jasně popsány (zejména v technické dokumentaci), díky čemuž je vytváření robota pro skupinu na VK vzrušující a zajímavé.

Použití služeb bota k vytvoření

Tato metoda je více žádaná než výše uvedená, a to z důvodu, že není potřeba studovat a studovat různé programovací jazyky. Doba vývoje se také výrazně zkracuje, ale ztrácí se jedinečnost. Je lepší realizovat jakékoli složité projekty pomocí první metody.

Podívejme se na několik služeb. Prvním a velmi oblíbeným webovým zdrojem je Robochat.

Klikněte na „Vytvořit robota“ a přejděte na registrační/autorizační formulář, vyberte nejpohodlnější metodu.


Dalším krokem je kliknout na tlačítko „Připojit robota“ a vybrat komunitu, která nás zajímá.

Po výběru a povolení potřebných přístupů robotu přejdeme do sekce „Nastavení“ a provedeme je. A to:

  • typ zprávy: pozdrav, akce po přihlášení/odhlášení, dopis nezpracované zprávě od uživatele internetu;
  • reakce na stažení jakéhokoli mediálního souboru: obrázek, nálepka, video, produkt, dokument, zvukový soubor;
  • atd.

Chcete-li upravit, ukažte na požadovanou položku a klikněte na „tužku“, která se objeví.

Do pole zadejte požadovaný text. Níže můžete nastavit akce samotného robota. Například po odpovědi přepněte na jiný příkaz nebo použijte následující algoritmus, pokud je splněna nějaká podmínka. Například, zda je osoba předplatitelem skupiny nebo ne.

Po pochopení principu se podívejme na hlavní možnosti služby:

  • "Nastavení" byla popsána dříve;
  • „Scénář“ umožňuje vytvořit imitaci přímého dialogu s uživatelem zapsáním určitých otázek, různých odpovědí a souvislostí mezi nimi. Čím promyšlenější je tato struktura, tím lépe.
  • „Newsletter“ - odesílání zpráv všem uživatelům na VKontakte, kteří někdy kontaktovali komunitu prostřednictvím robota;
  • "Statistika". Název mluví sám za sebe. Základní data pro analýzu: počet dialogů, zpráv, přihlášení/odhlášení, pohlaví/věk, město a statistika odpovědí na neznámé příkazy. Poslední bod umožňuje upřesnit strukturu a nastavit přesnější scénáře po přímé analýze.

    „Správa robota“ znamená následující body zobrazené na snímku obrazovky;

    „Zapsat do robota“ je samostatná funkce, která umožňuje kontrolovat a v případě potřeby ladit napsaný skript.

Důležité! Při připojení nástroje, jako je „Klávesnice“ (aby návštěvník internetu zadával odpovědi na otázky uvedené ve skriptu bota), musíte povolit položku „Schopnosti robota“ přímo ve skupině, v jejím nastavení. V „Robochatu“ stačí kliknout na hypertextový odkaz zobrazený na obrázku níže. Okamžitě přejdete do příslušné sekce, zbývá je pouze povolit.

Služba Robochat je bezplatná. Tarifní plán je tvořen na základě počtu předplatitelů a počtu připojených komunit:

  • Tarif „zdarma“ se vztahuje na veřejné formace s méně než 50 000 účastníky;
  • „Počáteční“ – 1 komunita s až 100 000 lidmi. Měsíční poplatek - 399 rublů;
  • „Standardní“ znamená možnost propojit jednu veřejnou stránku až s 500 000 odběrateli. Měsíční náklady - 599 rublů;
  • Premium – 1 999 rublů pro jakoukoli komunitu s neomezeným počtem přihlášených uživatelů.

Jak vidíte, služba, která vám umožňuje vytvořit robota pro skupinu na VK, je vynikajícím nástrojem pro rychlé vytvoření potřebného chatbota bez jakýchkoli specializovaných znalostí za poměrně nízkou cenu a promyšlený tarif. Souhlasíte s tím, že ceny v poměru k počtu přihlášených lidí nejsou přemrštěné a zcela oprávněné.

Zvažme další podobnou službu s originálním názvem - „BotVK“.

Kliknutím na „Vytvořit robota hned teď“ se okamžitě dostanete do okna s požadavky na přístup. V takovém případě je vhodné přihlásit se ke svému účtu na sociální síti VKontakte.

Přejdeme do sekce „Bots“ a připojíme požadovanou veřejnost.

Hlavní rozdíl je v ceně:

  • K dispozici je bezplatné zkušební období 3 dnů, které vám umožní plně se seznámit se všemi funkcemi služby;
  • Bez ohledu na počet předplatitelů je poplatek za předplatné 100 rublů měsíčně za jednu veřejnou formaci.
  • Za newsletter budete muset zaplatit 500 rublů, ale jednorázově.

Nízké náklady na měsíční poplatek jsou zjevně výhodou, která pomohla BotVK stát se konkurenceschopným a být na stejné úrovni jako Robochat.

Existují další služby, které umožňují vytvářet roboty pro automatizaci různých procesů komunikace s uživateli ve skupinách. Najdete je zadáním příslušného dotazu do vyhledávání, například nadpisu našeho článku.

Závěr

Shrneme-li vše výše uvedené, můžeme bezpečně vyvodit následující závěr - vytvoření robota pro skupinu na sociální síti VKontakte je možné pomocí různých metod. Počínaje přímým programováním a konče automatizovanými službami, které výrazně zjednodušují proces tvorby a šetří čas.

Kterou možnost si vybrat, rozhodněte se sami. Každý má své výhody. Hlavní věc, kterou je třeba si uvědomit, je, že vývoj scénářů je složitý a zodpovědný úkol, jehož kvalita přímo ovlivní loajalitu předplatitelů, a to jak současných, tak potenciálních. Čím zodpovědnější k tomuto procesu budete, tím lepší efekt bude mít robot.

V případě potřeby se můžete obrátit na internetové obchodníky, kteří mají zkušenosti a dovednosti s vytvářením scénářů pro různé obchodní procesy: prodej produktu, přihlášení osoby do komunity, komplexní dialog s uzavřením požadované cílové akce atd.

Hlavní věc je pochopit, že trh botů sice není přesycený a má volný vstup, ale je třeba ho využít a aktivně do něj proniknout a zaujmout sebevědomou vedoucí pozici.

Potřebujete chatbota, ale nevíte, jak kódovat? Nabízíme výběr nejlepších služeb návrhu botů. A některé jsou dokonce zdarma :)

Pokud jste obchodník, chatboti se vám v blízké budoucnosti jistě budou hodit. Zní to kategoricky, ale je to tak. Společnost, která pracuje s klienty (tedy každá značka), má pár procesů, které je třeba automatizovat. Boti v messengerech uleví personálu podpory, zvýší úroveň zákaznických služeb, sníží osobní náklady a tak dále.

A k tomu nemusíte pracovat online. Chatboti dokonce nahradí číšníky – a takové případy se ve Státech už objevují. Pojďme si to představit: jdete do své oblíbené kavárny, kde každé ráno snídáte. Na stěně u pultu je plakát se jménem bota číšníka (najdete ho hledáním v aplikacích). Stáhneš si messenger a napíšeš:

Ahoj bote!

Ahoj Andrey. Jste jako obvykle?

Ano, jen espresso místo džusu.

Objednávka přijata!

Po 15 minutách vám doneseme snídani. Bot, který napodobuje člověka, přijímá objednávky přes messenger, radí s nabídkou – a hlavně ukládá historii požadavků. Není tedy nutné pokaždé opakovat jednu věc – stačí, když systém pošle „Jsem jako minule“ a pochopí. Po zadání objednávky je odeslána do kuchyně a o něco později jídlo přináší „živý“ číšník.

To není abstraktní fantazie. Podobné roboty se již implementují v kavárnách v USA - a čekají na průkopníky v Rusku. Vytvoření takového robota je docela jednoduché a interakce s ním je působivá. Jak vidíte, automatizace procesů pomocí chatbotů je dostupná nejen online, ale také v gastronomii. Boti už umí rezervovat vstupenky, vyhledávat informace na internetu (text, vizuální obsah), radit s produkty společnosti atd. Přemýšlejte o tom, jak můžete použít roboty ve vaší firmě? A kolik vám ušetří?

Opět platí, že vytváření chatbotů není tak složitý proces, jak se zdá. Existuje dostatek platforem, které vám umožní navrhnout „robota“ pro instant messenger bez znalosti designu a kódování. Pojďme se podívat na 5 pohodlných služeb pro návrh chatbotů.

5 nejlepších řešení

Multiplatformní řešení pro vytváření botů. Podporované stránky:

Vlastnosti služby:

  • rozsáhlé knihovny obsahu;
  • řečová rozhraní;
  • velká komunita (více než 225 tisíc účastníků);
  • schopnost učení vytvořených robotů;
  • podpora většiny jazyků.

A co je nejdůležitější - služba je zdarma! Kromě pokročilých služeb: školení personálu, kontrola kódu, hosting a licence, rozšířená podpora atd. Platforma nabízí také zajímavé řešení: AIaaS (umělá inteligence jako služba). Pomocí zdrojů Pandorabots (nebo vašeho oblíbeného textového editoru) vytvoříte robota a poté jej během několika minut aktivujete prostřednictvím vestavěného rozhraní RESTful API.

„Vše, co potřebujete při vytváření robotů. Pro instant messengery Slack a Telegram,“ stojí v prvním okně služby. Nárokované výhody:

  • Skutečné multiplatformní. Jednou vytvořený bot funguje na všech platformách;
  • Pohodlný editor bot, nevyžaduje znalost kódu;
  • Více než 90 vestavěných integrací;
  • Hosting.

Cena zahrnuje dva tarify: zdarma (5 robotů, 100 interakcí, e-mailová podpora) a standardní (19 USD/měsíc, 15 robotů, 1500 interakcí). Ale nejen to. Standardní plán za 10 $/měsíc přidává 5 robotů a za 25 $ - 25 000 interakcí.

Systém považuje každou instanci uživatele spouštějícího robota za interakci nebo interakci.

Platforma pro tvorbu facebookových botů s půvabným logem chobotnice :) Služba nevyžaduje znalost kódu, je zdarma a jednoduchá. Jenže – na multiplatformní zapomeňte, ManyChat totiž podporuje pouze Facebook Messenger.

Bot je navržen na místě během několika minut - intuitivní rozhraní to usnadňuje. Používání Facebook Messengeru, na který se ManyChat zaměřuje, má několik výhod. Takže, když si člověk začne dopisovat s vaší firemní stránkou (botem), automaticky se stane předplatitelem. Nyní mu můžete posílat aktualizace, oznámení a další obsah.

Automatizujte interakci robota s uživateli, vytvářejte obsah pro e-maily, nastavte datum/čas odeslání – a odpočívejte, o zbytek se postará robot;) Kromě toho je ManyChat použitelný jako platforma pro automatické odesílání příspěvků přes RSS, Facebook, Twitter, YouTube .

Jedním slovem, ManyChat je pohodlné řešení, které postrádá pouze multiplatformní funkce.

Služba funguje s mnoha platformami: Facebook Messenger, Twitter, Slack, Smooch, Intercom, Telegram, KiK, Twilio, Webhooks, Luis.ai, Wit.ai, GitHub.Mezi vlastnosti:

Meya má velmi podrobný ceník (oproti ostatním hrdinům ve výběru) - až 5 tarifů. Není pravda, že je to dobré - vaše oči jsou trochu závrať z množství možností.

  • Uvolnit(200 zpráv, 1 bot, 1 zaměstnanec, podpora komunity);
  • Spuštění(49 $ měsíčně, 10 000 zpráv, 5 robotů, 2 zaměstnanci, „bronzová“ podpora a analýzy);
  • podnikání(99 $ měsíčně, 20 000 zpráv, neomezený počet robotů a zaměstnanců, „stříbrná“ podpora, analytika, export Github);
  • Organizace(199 $ měsíčně, flexibilní ceny – 50 000 zpráv nebo 10 000 uživatelů, robotů a zaměstnanců bez omezení, „zlatá“ podpora, analytika, export Github);
  • Podnik(cena dohodou, flexibilní ceny - více než 50 000 zpráv nebo 10 000 uživatelů, robotů a zaměstnanců bez omezení, „platinová“ podpora, analytika, export Github).

Stručně řečeno: zajímavá platforma s širokou funkčností.

Zvýraznění výběru. Platforma umožňuje vytvářet roboty pro Facebook a Telegram. Slack, KiK, WhatsApp a Viber přicházejí. Služba nabízí intuitivní funkcionalitu, která nevyžaduje znalost kódu. AI platformy rozpoznává požadavky uživatelů v širokém rozsahu a reaguje na ně a samotné řešení podporuje integraci s mnoha službami (twitter, YouTube, Instagram atd.).

ChatFuel již používají National Geographic, TechCrunch, UBER. A co je nejdůležitější, platforma je zdarma! Dodatek – až 100 000 aktivací botů měsíčně. Tento limit je ale podmíněný, protože je 2-5x širší než podmínky konkurentů. Zdá se, že tvůrci ChatFuel vytvořili nejatraktivnější řešení na trhu. Alespoň v poměru cena/kvalita.

Místo závěru

Zkontrolovali jsme TOP 5 řešení pro vytváření botů. Seznam dostupných platforem, funkčnost, cena - vše se liší řešení od řešení, ale určitě najdete službu, která vyhovuje vašim potřebám.

Ale pamatujte, pokud je váš čas drahý a nechcete ho trávit navrhováním bota, nebo pokud potřebujete nestandardní produkt se speciální funkčností – vezměte si své nápady a kontaktujte RoboMarketing :) Navrhneme boty jakékoli složitosti pro vás, bez funkčních omezení nebo limitů a měsíčních poplatků za předplatné.

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 "method" ": "sendMessage" (nebo jakákoli jiná metoda používaná robotem).

Štítky:

  • telegram
  • zavedení
  • python3
Přidejte značky


Nahoru