ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

ʻO ke ahiahi maikaʻi.

Nui nā ʻatikala e pili ana i ke kumuhana o Telegram bots, akā kakaikahi ka poʻe e kākau e pili ana i nā mākau no Alice, a ʻaʻole i loaʻa iaʻu kahi ʻike e pili ana i ka hana ʻana i hoʻokahi bot, no laila ua hoʻoholo wau e kaʻana like i koʻu ʻike i ka hana ʻana i kahi bots. maʻalahi Telegram bot a me ka Yandex.Alice akamai no ka pūnaewele me ka hana like.

No laila, ʻaʻole wau e haʻi iā ʻoe pehea e hoʻāla ai i kahi kikowaena pūnaewele a loaʻa kahi palapala ssl, ua lawa ka mea i kākau ʻia e pili ana.

Ke hana ʻana i kahi bot Telegram

ʻO ka mea mua, e hana mākou i kahi Telegram bot, no kēia hele mākou i Telegram a loaʻa ka BotFather bot ma laila.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

E koho /newbot

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

Hoʻokomo mākou i ka inoa o ka bot e pane mai ai, a laila hoʻokomo mākou i ka inoa o ka bot, ma ka pane e loaʻa iā mākou kahi hōʻailona e hoʻomalu i ka bot, kākau mākou i kēia kī, e pono iā mākou i ka wā e hiki mai ana.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

ʻO ka hana aʻe e haʻi i nā kikowaena Telegram i kahi kikowaena e hoʻouna i ka ʻikepili mai ka bot i. No ka hana ʻana i kēia, hana mākou i kahi loulou o ka palapala:

https: //api.telegram.org/bot___ТОКЕН___/setWebhook?url=https://____ПУТЬ_ДО_СКРПИТА___

___TOKEN___ hoʻololi mākou me kā mākou hōʻailona mai ka bot, i loaʻa ma mua

____PATH_TO_SCRIPT____ hoʻololi mākou me ka helu wahi o ka palapala ma kā mākou kikowaena kahi e hana ʻia ai ka ʻikepili (no ka laʻana, www.my_server.ru/webhook_telegram.php).

Aia kahi pilikia ma ʻaneʻi, aia ka server api.telegram.org ma lalo o ka pale ʻana, akā hiki iā ʻoe ke hana i kēia: hoʻolimalima i ke kikowaena liʻiliʻi loa kahi ʻaʻohe palena a hāʻawi i ke kauoha mai ka console o kēia kikowaena.

wget ___ПОЛУЧИВШИЙСЯ_АДРЕС___

ʻO ia, ua hana ʻia ka Telegram bot a pili i kāu kikowaena.

Ke hana nei i kahi akamai no Yandex.Alisa

E neʻe kākou i ka hana ʻana i kahi mākaukau no Yandex.Alice.

No ka hana ʻana i kahi mākaukau, pono ʻoe e hele i ka ʻaoʻao hoʻomohala Yandex.Dialogues Yandex.Dialogs palapala hoʻomohala, kaomi ma laila "Create dialogue" a koho i "Skill in Alice".

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

E wehe ʻia ke kamaʻilio hoʻonohonoho akamai.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

Hoʻomaka mākou e komo i nā hoʻonohonoho akamai.

E hookomo i ka inoa o kou akamai.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

Pono e koho pono ʻia ka inoa hoʻāla e hoʻomaopopo pono ai ʻo Alice, mai nā nuances - kahi polokalamu kelepona me Alice a me nā kolamu e like me Yandex.Station a i ʻole Irbis A hiki ke ʻike i nā huaʻōlelo ʻokoʻa.

Hoʻokomo mākou i ke ala i ka palapala ma kā mākou kikowaena ma ke ʻano like me Telegram, akā he palapala kikoʻī ia no Alice, no ka laʻana. www.my_server.ru/webhook_alice.php.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

Koho mākou i ka leo e kamaʻilio ai ke akamai, makemake nui au i ka leo o Alice.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

Inā hoʻolālā ʻoe e hana wale ma nā polokalamu kelepona a i ʻole ma kahi polokalamu kele pūnaewele, a laila koho "Pono ʻoe i kahi hāmeʻa me kahi pale."

A laila, e hoʻokomo i nā hoʻonohonoho no ka papa inoa akamai o Alice. Inā hoʻolālā ʻoe e hoʻohana i ka huaʻōlelo "brand" no ka hoʻāla ʻana, pono ʻoe e hōʻoia i ka pūnaewele o ka brand ma ka lawelawe webmaster.yandex.ru.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

ʻO ia wale nō me nā hoʻonohonoho, e neʻe kākou i ka palapala.

Telegram bot palapala

E hoʻomaka kākou me kahi palapala no Telegram.

Hoʻohui mākou i ka waihona kahi e hoʻoili ʻia ai nā memo mai ka bot a me Alice:

include_once 'webhook_parse.php';

Hoʻonoho mākou i ka hōʻailona o kā mākou bot:

$tg_bot_token = "_____YOUR_BOT_TOKEN_____";

Loaʻa iā mākou ka ʻikepili:

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

Ka hoʻokaʻawale ʻana i ka ʻikepili i nā ʻano hoʻololi:

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

I kēia manawa hiki iā ʻoe ke hana me nā mea hoʻololi:

$tokens - eia nā huaʻōlelo a pau i hoʻokomo ʻia e ka mea hoʻohana

$user_id - mea hoʻohana ma aneʻi

$msg_chat_id - kamaʻilio kahi i loaʻa ai ke kauoha i ka bot

$msg_user_name - inoa hoʻohana

A laila, kāhea mākou i ka hana Parse_Tokens no ka hana ʻana:

$Out_Str = Parse_Tokens($tokens);

A e hoʻouna i kahi pane:

Send_Out($user_id, $Out_Str);

He maʻalahi ka hana Send_Out a ua like kēia:

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

Skill palapala no Yandex.Alisa

I kēia manawa e neʻe kākou i ka palapala no Alice, ua aneane like ia me Telegram.

Hoʻohui pū mākou i ka waihona kahi e hana ʻia ai nā memo mai ka bot a me Alice, me kahi waihona me nā papa no Alice:

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

Loaʻa iā mākou ka ʻikepili:

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

Ka hoʻokaʻawale ʻana i ka ʻikepili i nā ʻano hoʻololi:

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

Aia kekahi mau ʻano liʻiliʻi liʻiliʻi ma aneʻi:

$tokens - eia nā huaʻōlelo a pau i hoʻokomo ʻia e ka mea hoʻohana

$user_id - mea hoʻohana ma aneʻi

Hoʻopuka mau ʻo Yandex i nā mākau i paʻi ʻia, a ua hoʻohui au i kahi laina e haʻalele koke i ka palapala me ka ʻole e hoʻomaka i ka hana piha o ka memo:

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

Kāhea mākou i ka hana Parse_Tokens no ka hana ʻana, ua like ia me Telegram:

$Out_Str = Parse_Tokens($tokens);

A e hoʻouna i kahi pane:

Send_Out($user_id, $Out_Str);

ʻOi aku ka paʻakikī o ka hana Send_Out ma aneʻi:

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

Ua pau ka palapala no Alice.

ʻO ka Parse_Tokens processing script ponoʻī i hana ʻia no kahi laʻana, hiki iā ʻoe ke hana i nā loiloi a me ka hana ʻana ma laila.

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

Inā pono ʻoe e kamaʻilio me ka mea hoʻohana i kahi ʻano paʻakikī ma mua o kahi nīnau-pane, a laila pono ʻoe e mālama i ka $user_id o ka mea hoʻohana a me ka ʻikepili i loaʻa mai ka mea hoʻohana i ka waihona (no ka laʻana, mysql) a nānā iā lākou i loko. ka hana Parse_Tokens.

ʻOiaʻiʻo, kokoke kēia i nā mea āpau, inā hana pololei nā mea āpau, a laila ua loaʻa ka Telegram bot, hiki ke nānā ʻia ke akamai o Alice. dialogs.yandex.ru/developerma ka hele ʻana i kāu mākau hou ma ka pā hoʻāʻo.

ʻO Yandex.Alisa a me Telegram bot ma PHP me ka hana like

Inā holo pololei nā mea a pau, hiki iā ʻoe ke hoʻouna i ke akamai no ka hoʻohaʻahaʻa ʻana ma ke kaomi ʻana i ke pihi "For moderation".

I kēia manawa, loaʻa iā ʻoe ʻelua bots no nā paepae like ʻole i ka manawa hoʻokahi, e hana like ana.

Palapala no ka lawelawe Yandex.Dialogues maanei

Hoʻopuka ʻia nā palapala piha ma github скачать.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka