Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Te ahiahi pai.

He maha nga korero mo te kaupapa mo nga bots Telegram, engari he iti noa nga tangata e tuhi ana mo nga pukenga mo Alice, kaore au i kitea he korero mo te hanga i tetahi bot kotahi, no reira ka whakatau ahau ki te whakapuaki i aku wheako me pehea te mahi karetao Telegram ngawari me te pukenga Yandex.Alice mo te papanga he rite nga mahi.

Na, e kore ahau e korero ki a koe me pehea te whakaara i tetahi tuumau paetukutuku me te whiwhi tiwhikete ssl, kua nui nga mea kua tuhia mo taua mea.

Te hanga karetao Telegram

Tuatahi, me hanga he Telegram bot, mo tenei ka haere matou ki Telegram ka kitea te BotFather bot ki reira.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Kōwhiri /newbot

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Ka whakauruhia e matou te ingoa o te bot e whakautu ai, katahi ka whakauruhia te ingoa o te bot, hei whakautu ka whiwhi tohu hei whakahaere i te bot, ka tuhia e matou tenei ki, ka whai hua ki a matou a muri ake nei.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Ko te mahi e whai ake nei ko te korero ki nga kaitoro Telegram ko wai te kaimau e tuku raraunga mai i te karetao ki. Ki te mahi i tenei, ka hanga e matou he hononga o te puka:

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

___TOKEN___ ka whakakapihia e matou ki a matou tohu mai i te karetao, kua riro mai i mua

____PATH_TO_SCRIPT____ ka whakakapihia e matou ki te wahitau o te tuhinga tuhi kei runga i ta matou tūmau ka tukatukahia nga raraunga (hei tauira, www.my_server.ru/webhook_telegram.php).

He raru kei konei, kei te aukatihia te tūmau api.telegram.org, engari ka taea e koe tenei: haea te tūmau iti rawa kaore he here ka tukuna he whakahau mai i te papatohu o tenei tūmau

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

Koina, ka hangaia te karetao Telegram ka hono atu ki to kaimau.

Te hanga pukenga mo Yandex.Alisa

Me neke tatou ki te hanga pukenga mo Yandex.Alice.

Ki te hanga i tetahi pukenga, me haere koe ki te wharangi kaiwhakawhanake Yandex.Dialogues Yandex.Dialogs whārangi kaiwhakawhanake, paatohia ki reira "Waihanga korero" ka kowhiri i te "Skill in Alice".

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Ka tuwhera te korero tautuhinga pukenga.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Ka timata tatou ki te whakauru i nga tautuhinga pukenga.

Whakauruhia te ingoa o to pukenga.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Me tino whiriwhiria te ingoa whakahohenga kia mohio tika ai a Alice, mai i nga ahuatanga - he tono pūkoro me Alice me nga pou penei i a Yandex.Station or Irbis A ka taea te kite i nga kupu rereke.

Ka uru matou ki te huarahi ki te tuhi i runga i ta maatau tūmau i te huarahi ano mo Telegram, engari ka waiho hei tuhinga motuhake mo Alice, hei tauira www.my_server.ru/webhook_alice.php.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Ka whiriwhiri tatou i te reo e korero ai te pukenga, he pai ki ahau te reo o Alice.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Mena kei te whakamahere koe ki te mahi i runga i nga taputapu pūkoro, i roto ranei i te kaitirotiro, tohua "Kei te hiahia koe ki tetahi taputapu whai mata."

Whai muri, whakauruhia nga tautuhinga mo te putumōhio pukenga a Alice. Mena kei te whakamahere koe ki te whakamahi i te kupu "waitohu" mo te whakahohe, me whakamana e koe te paetukutuku o te waitohu i roto i te ratonga webmaster.yandex.ru.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Heoi ano me nga whakatakotoranga, me neke atu ki nga tuhinga.

Tuhituhi bot Telegram

Me timata me te tuhinga mo Telegram.

Ka honoa e matou te whare pukapuka kei reira nga karere mai i te bot me Alice ka tukatukahia:

include_once 'webhook_parse.php';

I tautuhia e matou te tohu o to maatau bot:

$tg_bot_token = "_____YOUR_BOT_TOKEN_____";

Ka whiwhi matou i nga raraunga:

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

Te wehewehe i nga raraunga ki nga taurangi:

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

Inaianei ka taea e koe te mahi me nga taurangi:

$tokens - kei konei nga kupu katoa i whakauruhia e te kaiwhakamahi

$user_id - id kaiwhakamahi kei konei

$msg_chat_id - kōrerorero i whiwhi te karetao te whakahau

$msg_user_name - ingoa kaiwhakamahi

I muri mai, ka karangahia e matou te mahi Parse_Tokens mo te tukatuka:

$Out_Str = Parse_Tokens($tokens);

A ka tuku whakautu:

Send_Out($user_id, $Out_Str);

he ngawari te mahi Send_Out me te ahua penei:

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

Pukenga tuhinga mo Yandex.Alisa

Inaianei me neke atu ki te tuhinga mo Alice, he rite tonu ki a Telegram.

Ka honoa ano e matou te whare pukapuka kei reira nga karere mai i te bot me Alice ka tukatukahia, me tetahi whare pukapuka me nga karaehe mo Alice:

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

Ka whiwhi matou i nga raraunga:

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

Te wehewehe i nga raraunga ki nga taurangi:

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

He iti noa nga taurangi i konei:

$tokens - kei konei nga kupu katoa i whakauruhia e te kaiwhakamahi

$user_id - id kaiwhakamahi kei konei

I nga wa katoa ka tukuna e Yandex nga pukenga whakaputa, a ka taapirihia e ahau he raina kia puta tonu i te tuhinga me te kore e timata te tukatuka katoa o te karere:

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

Ka kiia e matou te mahi Parse_Tokens mo te tukatuka, he rite tonu ki a Telegram:

$Out_Str = Parse_Tokens($tokens);

A ka tuku whakautu:

Send_Out($user_id, $Out_Str);

He uaua ake te mahi Send_Out i konei:

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

Kua oti te tuhinga mo Alice.

Ko te Parse_Tokens tuhi tuhi i hangaia hei tauira, ka taea e koe te tirotiro me te tukatuka i reira.

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

Mena ka hiahia koe ki te korero ki tetahi kaiwhakamahi he ahua uaua ake i te patai-whakautu, katahi koe me tiaki i te $user_id o te kaiwhakamahi me nga raraunga kua riro mai i te kaiwhakamahi i roto i te papaa raraunga (hei tauira, mysql) ka tātarihia ki roto. te mahi Parse_Tokens.

Inaa, he tata katoa tenei, mena ka tika nga mahi katoa, katahi ka waatea te Telegram bot, ka taea te tirotiro i nga pukenga a Alice dialogs.yandex.ru/developerma te haere ki to pukenga hou i te ripa whakamatautau.

Yandex.Alisa me Telegram bot i roto i te PHP me te mahi ano

Mena ka tika nga mea katoa, ka taea e koe te tuku i te pukenga mo te whakaōrite mā te pāwhiri i te pātene "Mo te whakaōrite".

Inaianei kei a koe nga potae e rua mo nga papaaho rereke i te wa kotahi, he rite tonu te mahi.

Tuhinga mo te ratonga Yandex.Dialogues konei

Ko nga tuhinga katoa i tukuna ki te github скачать.

Source: will.com

Tāpiri i te kōrero