ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Π”ΠΎΠ±Ρ€Ρ‹ΠΉ дСнь.

На Ρ‚Π΅ΠΌΡƒ Telegram-Π±ΠΎΡ‚ΠΎΠ² статСй ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ, Π° Π²ΠΎΡ‚ ΠΏΡ€ΠΎ Π½Π°Π²Ρ‹ΠΊΠΈ для Алисы ΠΌΠ°Π»ΠΎ ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚, Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π±ΠΎΡ‚Π° я Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ нашСл, поэтому Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ простого Π±ΠΎΡ‚Π° Telegram ΠΈ Π½Π°Π²Ρ‹ΠΊ ЯндСкс.Алиса для сайта, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π΅Π΄ΠΈΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π΅Π±-сСрвСр ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ssl-сСртификат я Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Ρƒ, ΠΏΡ€ΠΎ это написано достаточно.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Telegram-Π±ΠΎΡ‚Π°

Π‘Π½Π°Ρ‡Π°Π»Π° создадим Telegram-Π±ΠΎΡ‚Π°, для этого ΠΈΠ΄Π΅ΠΌ Π² Telegram ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚Π°ΠΌ Π±ΠΎΡ‚Π° BotFather.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ /newbot

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Π’Π²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΎΡ‚Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΡ‚ΠΎΠΌ Π²Π²ΠΎΠ΄ΠΈΠΌ имя Π±ΠΎΡ‚Π°, Π² ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚ΠΎΠΊΠ΅Π½ для управлСния Π±ΠΎΡ‚ΠΎΠΌ, записываСм этот ΠΊΠ»ΡŽΡ‡, ΠΎΠ½ Π½Π°ΠΌ пригодится Π² дальнСйшСм.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” это ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ сСрвСрам Telegram, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ сСрвСр ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π±ΠΎΡ‚Π°. Для этого Π΄Π΅Π»Π°Π΅ΠΌ ссылку Π²ΠΈΠ΄Π°:

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

___Π’ΠžΠšΠ•Π___ замСняСм Π½Π° наш Ρ‚ΠΎΠΊΠ΅Π½ ΠΎΡ‚ Π±ΠΎΡ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅

____ПУВЬ_Π”Πž_БКРПИВА___ замСняСм Π½Π° адрСс скрипта Π½Π° нашСм сСрвСрС, Π³Π΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, www.my_server.ru/webhook_telegram.php).

Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, сСрвСр api.telegram.org находится ΠΏΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: Π°Ρ€Π΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ самый Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ сСрвСр Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π΄Π°Ρ‚ΡŒ ΠΈΠ· консоли этого сСрвСра ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

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

ВсС, Telegram-Π±ΠΎΡ‚ создан ΠΈ связан с вашим сСрвСром.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠ° для ЯндСкс.Алиса

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ созданию Π½Π°Π²Ρ‹ΠΊΠ° для ЯндСкс.Алиса.

Для создания Π½Π°Π²Ρ‹ΠΊΠ° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° страницу Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ЯндСкс.Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ страницу Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ЯндСкс.Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ, Π½Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚Π°ΠΌ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³Β» ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ «Навык Π² АлисС».

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ настроСк Π½Π°Π²Ρ‹ΠΊΠ°.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

НачинаСм Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ настройки Π½Π°Π²Ρ‹ΠΊΠ°.

Π’Π²ΠΎΠ΄ΠΈΠΌ имя вашСго Π½Π°Π²Ρ‹ΠΊΠ°.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

АктивационноС имя слСдуСт ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Алиса ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»Π°, ΠΈΠ· нюансов – мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Алисой ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ‚ΠΈΠΏΠ° ЯндСкс.Бтанция ΠΈΠ»ΠΈ Irbis A ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ слова ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ.

Π’Π²ΠΎΠ΄ΠΈΠΌ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ скрипта Π½Π° нашСм сСрвСрС Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для Telegram, Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ скрипт ΠΈΠΌΠ΅Π½Π½ΠΎ для Алисы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ www.my_server.ru/webhook_alice.php.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ голос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊ, ΠΌΠ½Π΅ большС нравится ΠΈΠΌΠ΅Π½Π½ΠΎ голос Алисы.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Если планируСтся Ρ€Π°Π±ΠΎΡ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах ΠΈΠ»ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, Ρ‚ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ «НуТно устройство с экраном».

Π”Π°Π»Π΅Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ настройки для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π½Π°Π²Ρ‹ΠΊΠΎΠ² Алисы. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ слово β€” Π±Ρ€Π΅Π½Π΄, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ сайта Π±Ρ€Π΅Π½Π΄Π° Π² сСрвисС webmaster.yandex.ru.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Π‘ настройками всС, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ скриптам.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Telegram-Π±ΠΎΡ‚Π°

НачнСм со скрипта для Telegram.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ сообщСния ΠΎΡ‚ Π±ΠΎΡ‚Π° ΠΈ Алисы:

include_once 'webhook_parse.php';

Π—Π°Π΄Π°Π΅ΠΌ token нашСго Π±ΠΎΡ‚Π°:

$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);
}

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π½Π°Π²Ρ‹ΠΊΠ° для ЯндСкс.Алиса

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ скрипту для Алисы, ΠΎΠ½ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для Telegram.

Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π³Π΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ сообщСния ΠΎΡ‚ Π±ΠΎΡ‚Π° ΠΈ Алисы, плюс Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с классами для Алисы:

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 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ЯндСкс постоянно ΠΏΠΈΠ½Π³ΡƒΠ΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, ΠΈ я Π΄ΠΎΠ±Π°Π²ΠΈΠ» строчку, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· скрипта, Π½Π΅ запуская ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ сообщСния:

  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;
}

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ слоТного Π²ΠΈΠ΄Π°, Ρ‡Π΅ΠΌ вопрос-ΠΎΡ‚Π²Π΅Ρ‚, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π±Π°Π·Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ mysql) $user_id ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Parse_Tokens.

БобствСнно это ΠΏΠΎΡ‡Ρ‚ΠΈ всС, Ссли всС сдСлано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ Telegram-Π±ΠΎΡ‚ ΡƒΠΆΠ΅ доступСн, Π½Π°Π²Ρ‹ΠΊ Алисы ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ dialogs.yandex.ru/developer, пСрСйдя Π² свой Π½ΠΎΠ²Ρ‹ΠΉ Π½Π°Π²Ρ‹ΠΊ Π½Π° Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ тСстированиС.

ЯндСкс.Алиса ΠΈ Π±ΠΎΡ‚ Telegram Π½Π° PHP с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ

Если всС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊ Π½Π° ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΡŽ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ «На ΠΌΠΎΠ΄Π΅Ρ€Π°Ρ†ΠΈΡŽΒ».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ сразу Π΄Π²Π° Π±ΠΎΡ‚Π° для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.

ДокумСнтация ΠΏΠΎ сСрвису ЯндСкс.Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ Ρ‚ΡƒΡ‚

ΠŸΠΎΠ»Π½Ρ‹Π΅ скрипты Π²Ρ‹Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½Π° github ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com