Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π”ΠΎΠ±Π°Ρ€ Π΄Π΅Π½.

Има ΠΌΠ½ΠΎΠ³Ρƒ статии Π½Π° Ρ‚Π΅ΠΌΠ° Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ Π±ΠΎΡ‚ΠΎΠ²ΠΈ, Π½ΠΎ ΠΌΠ°Π»ΠΊΡƒΠΌΠΈΠ½Π° ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ Π·Π° Π²Π΅ΡˆΡ‚ΠΈΠ½ΠΈ Π·Π° Алис, Π° јас Π½Π΅ најдов Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²Π°ΠΌ Π΅Π΄Π΅Π½ Π±ΠΎΡ‚, ΠΏΠ° Ρ€Π΅ΡˆΠΈΠ² Π΄Π° Π³ΠΎ сподСлам ΠΌΠΎΠ΅Ρ‚ΠΎ искуство Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²Π°ΠΌ СдноставСн Π±ΠΎΡ‚ Π½Π° Telegram ΠΈ Π²Π΅ΡˆΡ‚ΠΈΠ½Π°Ρ‚Π° Yandex.Alice Π·Π° страницата ΡˆΡ‚ΠΎ ја ΠΈΠΌΠ° истата функционалност.

Π—Π½Π°Ρ‡ΠΈ, Π½Π΅ΠΌΠ° Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅Ρ‚Π΅ Π²Π΅Π±-сСрвСр ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅Ρ‚Π΅ ssl сСртификат, Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π΅ напишано Π·Π° Ρ‚ΠΎΠ°.

ΠšΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±ΠΎΡ‚ Π½Π° Telegram

ΠŸΡ€Π²ΠΎ, ајдС Π΄Π° создадСмС Π±ΠΎΡ‚ Telegram, Π·Π° ΠΎΠ²Π° ΠΎΠ΄ΠΈΠΌΠ΅ Π²ΠΎ Telegram ΠΈ Ρ‚Π°ΠΌΡƒ Π³ΠΎ Π½Π°ΠΎΡ“Π°ΠΌΠ΅ Π±ΠΎΡ‚ΠΎΡ‚ BotFather.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π˜Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ /newbot

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π“ΠΎ внСсувамС ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΎΡ‚ΠΎΡ‚ со кој ќС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ, ΠΏΠΎΡ‚ΠΎΠ° Π³ΠΎ внСсувамС ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±ΠΎΡ‚ΠΎΡ‚, ΠΊΠ°ΠΊΠΎ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Π±ΠΎΡ‚ΠΎΡ‚, Π³ΠΎ Π·Π°ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ овој ΠΊΠ»ΡƒΡ‡, ќС Π½ΠΈ Π±ΠΈΠ΄Π΅ корисСн Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π‘Π»Π΅Π΄Π½ΠΈΠΎΡ‚ Ρ‡Π΅ΠΊΠΎΡ€ Π΅ Π΄Π° ΠΈΠΌ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½Π° сСрвСритС Π½Π° Telegram Π½Π° кој сСрвСр Π΄Π° ΠΈΡΠΏΡ€Π°ΡœΠ°Π°Ρ‚ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Π±ΠΎΡ‚ΠΎΡ‚. Π—Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π°, ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ врска ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°:

https: //api.telegram.org/bot___Π’ΠžΠšΠ•Π___/setWebhook?url=https://____ПУВЬ_Π”Πž_БКРПИВА___

___TOKEN___ Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ со Π½Π°ΡˆΠΈΠΎΡ‚ Ρ‚ΠΎΠΊΠ΅Π½ ΠΎΠ΄ Π±ΠΎΡ‚ΠΎΡ‚, Π΄ΠΎΠ±ΠΈΠ΅Π½ ΠΏΠΎΡ€Π°Π½ΠΎ

____PATH_TO_SCRIPT____ ја Π·Π°ΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ со адрСсата Π½Π° скриптата Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ сСрвСр ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ќС сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, www.my_server.ru/webhook_telegram.php).

Има ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΎΠ²Π΄Π΅, сСрвСрот api.telegram.org Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π°: ΠΈΠ·Π½Π°Ρ˜ΠΌΠ΅Ρ‚Π΅ Π³ΠΎ Π½Π°Ρ˜Π΅Π²Ρ‚ΠΈΠ½ΠΈΠΎΡ‚ сСрвСр ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π½Π΅ΠΌΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° ΠΈ Π΄Π°Ρ˜Ρ‚Π΅ ја ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° ΠΎΠ΄ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° Π½Π° овој сСрвСр

wget ___ΠŸΠžΠ›Π£Π§Π˜Π’Π¨Π˜Π™Π‘Π―_АДРЕБ___

Π’ΠΎΠ° Π΅ сè, Π±ΠΎΡ‚ΠΎΡ‚ Telegram Π΅ ΠΊΡ€Π΅ΠΈΡ€Π°Π½ ΠΈ ΠΏΠΎΠ²Ρ€Π·Π°Π½ со Π²Π°ΡˆΠΈΠΎΡ‚ сСрвСр.

БоздавањС Π²Π΅ΡˆΡ‚ΠΈΠ½Π° Π·Π° Yandex.Alisa

АјдС Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌΠ΅ Π΄Π° создавамС Π²Π΅ΡˆΡ‚ΠΈΠ½Π° Π·Π° Yandex.Alice.

Π—Π° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π²Π΅ΡˆΡ‚ΠΈΠ½Π°, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅Ρ‚Π΅ Π½Π° страницата Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Yandex.Dialogues Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Yandex.Dialogs, ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ Ρ‚Π°ΠΌΡƒ β€žΠšΡ€Π΅ΠΈΡ€Π°Ρ˜ Π΄ΠΈΡ˜Π°Π»ΠΎΠ³β€œ ΠΈ ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ β€žΠ’Π΅ΡˆΡ‚ΠΈΠ½Π° Π²ΠΎ ΠΠ»ΠΈΡβ€œ.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

ЌС сС ΠΎΡ‚Π²ΠΎΡ€ΠΈ Π΄ΠΈΡ˜Π°Π»ΠΎΠ³ΠΎΡ‚ Π·Π° поставки Π·Π° Π²Π΅ΡˆΡ‚ΠΈΠ½ΠΈ.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

ΠŸΠΎΡ‡Π½ΡƒΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΈ внСсувамС поставкитС Π·Π° Π²Π΅ΡˆΡ‚ΠΈΠ½ΠΈ.

ВнСсСтС Π³ΠΎ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Π²Π΅ΡˆΡ‚ΠΈΠ½Π°.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π˜ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡ˜Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ·Π±Ρ€Π°Π½ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π·Π° Алис Π΄Π° Π³ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ΠΎΠ΄ Π½ΠΈΡ˜Π°Π½ΡΠΈΡ‚Π΅ - ΠΌΠΎΠ±ΠΈΠ»Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° со Алис ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΠΊΠ°ΠΊΠΎ Yandex.Station ΠΈΠ»ΠΈ Irbis A ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΠ΅Ρ€Ρ†Π΅ΠΏΠΈΡ€Π° Π·Π±ΠΎΡ€ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠΈΠ½Π°ΠΊΡƒ.

Ја внСсувамС ΠΏΠ°Ρ‚Π΅ΠΊΠ°Ρ‚Π° Π΄ΠΎ скриптата Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ сСрвСр Π½Π° ист Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°ΠΊΠΎ ΠΈ Π·Π° Telegram, Π½ΠΎ Ρ‚ΠΎΠ° ќС Π±ΠΈΠ΄Π΅ скрипта ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ Π·Π° Алис, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ www.my_server.ru/webhook_alice.php.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π“ΠΎ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ гласот со кој ќС Π·Π±ΠΎΡ€ΡƒΠ²Π° Π²Π΅ΡˆΡ‚ΠΈΠ½Π°Ρ‚Π°, повСќС ΠΌΠΈ сС Π΄ΠΎΠΏΠ°Ρ“Π° гласот Π½Π° Алиса.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Ако ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ само Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡƒΡ€Π΅Π΄ΠΈ ΠΈΠ»ΠΈ Π²ΠΎ прСлистувач, Ρ‚ΠΎΠ³Π°Ρˆ ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ β€žΠ’ΠΈ Ρ‚Ρ€Π΅Π±Π° ΡƒΡ€Π΅Π΄ со Π΅ΠΊΡ€Π°Π½β€œ.

Π‘Π»Π΅Π΄Π½ΠΎ, внСсСтС Π³ΠΈ поставкитС Π·Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΡ‚ Π½Π° Π²Π΅ΡˆΡ‚ΠΈΠ½ΠΈ Π½Π° Алис. Ако ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ Π΄Π° Π³ΠΎ користитС Π·Π±ΠΎΡ€ΠΎΡ‚ β€žΠ±Ρ€Π΅Π½Π΄β€œ Π·Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΡšΠ΅, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја ΠΏΠΎΡ‚Π²Ρ€Π΄ΠΈΡ‚Π΅ Π²Π΅Π±-страницата Π½Π° Π±Ρ€Π΅Π½Π΄ΠΎΡ‚ Π²ΠΎ услугата webmaster.yandex.ru.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Π’ΠΎΠ° Π΅ сС со поставкитС, ајдС Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌΠ΅ Π½Π° скриптитС.

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌΠ° Π±ΠΎΡ‚ скрипта

Π”Π° ΠΏΠΎΡ‡Π½Π΅ΠΌΠ΅ со скрипта Π·Π° Telegram.

Ја ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ќС сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ ΠΎΠ΄ Π±ΠΎΡ‚ΠΎΡ‚ ΠΈ Алис:

include_once 'webhook_parse.php';

Π“ΠΎ поставивмС Π·Π½Π°ΠΊΠΎΡ‚ Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ Π±ΠΎΡ‚:

$tg_bot_token = "_____YOUR_BOT_TOKEN_____";

Π”ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ:

$request = file_get_contents('php://input');
$request = json_decode($request, TRUE);

ΠŸΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:

if (!$request)
{
  die();
    // Some Error output (request is not valid JSON)
}
else if (!isset($request['update_id']) || !isset($request['message']))
{
  die();
    // Some Error output (request has not message)
}
else
{
  $user_id = $request['message']['from']['id'];
  $msg_user_name = $request['message']['from']['first_name'];
  $msg_user_last_name = $request['message']['from']['last_name'];
  $msg_user_nick_name = $request['message']['from']['username'];
  $msg_chat_id = $request['message']['chat']['id'];
  $msg_text = $request['message']['text'];


  $msg_text = mb_strtolower($msg_text, 'UTF-8');


  $tokens = explode(" ", $msg_text);
}

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:

$tokens - Ρ‚ΡƒΠΊΠ° сС сСга ситС Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ ΡˆΡ‚ΠΎ корисникот Π³ΠΈ внСсС

$user_id - кориснички id ΠΎΠ²Π΄Π΅

$msg_chat_id - Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ Π²ΠΎ кој Π±ΠΎΡ‚ΠΎΡ‚ ја ΠΏΡ€ΠΈΠΌΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

$msg_user_name - корисничко ΠΈΠΌΠ΅

Π‘Π»Π΅Π΄Π½ΠΎ, ја Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π°ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Parse_Tokens Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°:

$Out_Str = Parse_Tokens($tokens);

И испратСтС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€:

Send_Out($user_id, $Out_Str);

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Send_Out Π΅ Сдноставна ΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

function Send_Out($user_id, $text, $is_end = true)
{
  global $tg_bot_token;
  if (strlen($user_id) < 1 || strlen($text) < 1) {return;}
  $json = file_get_contents('https://api.telegram.org/bot' . $tg_bot_token . '/sendMessage?chat_id=' . $user_id . '&text=' . $text);
}

Π‘ΠΊΡ€ΠΈΠΏΡ‚Π° Π·Π° Π²Π΅ΡˆΡ‚ΠΈΠ½Π° Π·Π° Yandex.Alisa

Π‘Π΅Π³Π° Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌΠ΅ Π½Π° сцСнариото Π·Π° Алис, Ρ‚ΠΎΠ° Π΅ рСчиси исто ΠΊΠ°ΠΊΠΎ ΠΈ Π·Π° Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ.

Ја ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΠΌΠ΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ќС сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ ΠΎΠ΄ Π±ΠΎΡ‚ΠΎΡ‚ ΠΈ Алис, плус Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° со класи Π·Π° Алис:

include_once 'classes_alice.php';
include_once 'webhook_parse.php';

Π”ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ:

$data = json_decode(trim(file_get_contents('php://input')), true);

ΠŸΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:

if (isset($data['request']))
{

//original_utterance


  if (isset($data['meta']))
  {
    $data_meta = $data['meta'];
    if (isset($data_meta['client_id'])) {$client_id = $data_meta['client_id'];}
  }

  if (isset($data['request']))
  {
    $data_req = $data['request'];

    if (isset($data_req['original_utterance']))
    {
      $original_utterance = $data_req['original_utterance'];
    }


    if (isset($data_req['command'])) {$data_msg = $data_req['command'];}
    if (isset($data_req['nlu']))
    {
      $data_nlu = $data_req['nlu'];
      if (isset($data_nlu['tokens'])) {$tokens = $data_nlu['tokens'];}
//      $data_token_count = count($data_tokens);
    }
  }
  if (isset($data['session']))
  {
    $data_session = $data['session'];
    if (isset($data_session['new'])) {$data_msg_new = $data_session['new'];}
    if (isset($data_session['message_id'])) {$data_msg_id = $data_session['message_id'];}
    if (isset($data_session['session_id'])) {$data_msg_sess_id = $data_session['session_id'];}
    if (isset($data_session['skill_id'])) {$skill_id = $data_session['skill_id'];}
    if (isset($data_session['user_id'])) {$user_id = $data_session['user_id'];}
  }
}

ОвдС ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ:

$tokens - Ρ‚ΡƒΠΊΠ° сС сСга ситС Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ ΡˆΡ‚ΠΎ корисникот Π³ΠΈ внСсС

$user_id - кориснички id ΠΎΠ²Π΄Π΅

Yandex ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ Π³ΠΈ ΠΏΠΈΠ½Π³ΡƒΠ²Π° ΠΎΠ±Ρ˜Π°Π²Π΅Π½ΠΈΡ‚Π΅ Π²Π΅ΡˆΡ‚ΠΈΠ½ΠΈ ΠΈ Π΄ΠΎΠ΄Π°Π΄ΠΎΠ² линија Π·Π° вСднаш Π΄Π° ΠΈΠ·Π»Π΅Π·Π°ΠΌ ΠΎΠ΄ скриптата Π±Π΅Π· Π΄Π° ја Π·Π°ΠΏΠΎΡ‡Π½Π°ΠΌ цСлосната ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΡ€Π°ΠΊΠ°Ρ‚Π°:

  if (strpos($tokens[0], "ping") > -1)     {Send_Out("pong", "", true);}

Ја Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π°ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Parse_Tokens Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚Π°Π° Π΅ иста ΠΊΠ°ΠΊΠΎ ΠΈ Π·Π° Telegram:

$Out_Str = Parse_Tokens($tokens);

И испратСтС ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€:

Send_Out($user_id, $Out_Str);

Π€ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Send_Out Π΅ ΠΏΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½Π° ΠΎΠ²Π΄Π΅:

function Send_Out($user_id, $out_text, $out_tts = "", $is_end = false)
{
  global $data_msg_sess_id, $user_id;

  ///// GENERATE BASE OF OUT //////
    $Data_Out = new Alice_Data_Out();
    $Data_Out->response = new Alice_Response();
    $Data_Out->session = new Alice_Session();
  ///// GENERATE BASE OF OUT End //////

  ///// OUT MSG GENERATE /////
  $Data_Out->session->session_id = $data_msg_sess_id;;
  $Data_Out->session->user_id = $user_id;

  $Data_Out->response->text = $out_text;
  $Data_Out->response->tts = $out_tts;

  if (strlen($out_tts) < 1) {$Data_Out->response->tts = $out_text;}

  $Data_Out->response->end_session = $is_end;

  header('Content-Type: application/json');
  print(json_encode($Data_Out, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT));

  die();
}

Π“ΠΎ Π·Π°Π²Ρ€ΡˆΠΈΠ² сцСнариото Π·Π° Алис.

Π‘Π°ΠΌΠ°Ρ‚Π° скрипта Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Parse_Tokens Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½Π° чисто Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°.

function Parse_Tokens($tokens)
{
  $out = "";
  // do something with tokens //
  $out =  "Your eneter " . count($tokens) . " words: " . implode($tokens, " ");
  return $out;
}

Ако Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°Ρ‚Π΅ со корисник Π²ΠΎ покомплСксна Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠ΄ ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅-ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€, Ρ‚ΠΎΠ³Π°Ρˆ ќС Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ Π·Π°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ $user_id Π½Π° корисникот ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΊΠΎΠΈ вСќС Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ»Π΅ ΠΎΠ΄ корисникот Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, mysql) ΠΈ Π΄Π° Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Parse_Tokens.

Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, ΠΎΠ²Π° Π΅ рСчиси сè, Π°ΠΊΠΎ сè Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‚ΠΎΠ³Π°Ρˆ Π±ΠΎΡ‚ΠΎΡ‚ Telegram Π΅ вСќС достапСн, Π²Π΅ΡˆΡ‚ΠΈΠ½Π°Ρ‚Π° Π½Π° Алис ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ dialogs.yandex.ru/developerсо одСњС Π΄ΠΎ Π²Π°ΡˆΠ°Ρ‚Π° Π½ΠΎΠ²Π° Π²Π΅ΡˆΡ‚ΠΈΠ½Π° Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΡ‡ΠΊΠ°Ρ‚Π° Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅.

Yandex.Alisa ΠΈ Telegram Π±ΠΎΡ‚ Π²ΠΎ PHP со иста функционалност

Ако сè Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја испратитС Π²Π΅ΡˆΡ‚ΠΈΠ½Π°Ρ‚Π° Π·Π° умСрСност со ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΏΡ‡Π΅Ρ‚ΠΎ β€žΠ—Π° ΡƒΠΌΠ΅Ρ€Π΅Π½ΠΎΡΡ‚β€œ.

Π‘Π΅Π³Π° ΠΈΠΌΠ°Ρ‚Π΅ Π΄Π²Π° Π±ΠΎΡ‚Π° Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ одСднаш, ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ист Π½Π°Ρ‡ΠΈΠ½.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π·Π° услугата Yandex.Dialogues Ρ‚ΡƒΠΊΠ°

ЦСлоснитС скрипти објавСни Π½Π° github ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅Ρ‚Π΅.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€