Yandex.Alisa et Telegram bot in PHP eadem functionality

Bonus dies.

Articuli in argumento telegraphi automata multa sunt, sed pauci homines de artibus pro Alice scribunt, et nullam invenio informationem quomodo unum botones efficiant, sic placuit experientiam meam communicare quam facere. simplex telegraphum bot et Yandex.Alice peritia pro situ eandem functionem habens.

Ideo non dicam tibi quomodo telam ministrantem movere et libellum ssl habere, satis de eo scriptum est.

Creando Telegram bot

Primum faciamus automata Telegram, hoc enim ad Telegram imus et ibi BotPather invenire.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Yandex.Alisa et Telegram bot in PHP eadem functionality

Elige / newbot

Yandex.Alisa et Telegram bot in PHP eadem functionality

Botti nomen ingredimur quo respondebit, tum nomen automati ingredimur, respondemus tesseram automatis moderandi accipimus, hanc clavem scribimus, nobis in posterum usui erit.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Proximus gradus est servers Telegram nuntiare qui servo notitias ex autocineto mitteret. Ad hoc facimus nexum formae;

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

___TOKEN___ restituimus nostro signo ex autocineto recepto ante

____PATH_TO_SCRIPT____ cum inscriptione scriptoris in servitore nostro restituimus ubi notitia procedendum est (exempli gratia: www.my_server.ru/webook_telegram.php).

Difficultas hic est, servo api.telegram.org sub interclusione est, sed hoc facere potes: vilissimum servo scissum ubi nullae sunt restrictiones et mandatum e consolatorio huius ministri.

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

Hoc est, Telegram automatarium creatum et connexum servo tuo.

Creando scientia pro Yandex.Alisa

In arte faciendi Yandex.Alice transeamus.

Peritia creare, debes ire ad Paginam Yandex.Dialogues tincidunt Yandex.Dialogs elit paginapreme ibi "Dialogum crea" et "Skill in Alice".

Yandex.Alisa et Telegram bot in PHP eadem functionality

Disciplina occasus alternis aperiet.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Incipimus arte occasus ingredi.

Ingredere in arte nomen tuum.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Nomen activationis diligentissime eligendum est ut Alicia recte intelligat, a nuances - mobili applicatione cum Alicie et columnis sicut Yandex.Station vel Irbis A verba aliter percipere possunt.

Iter ad scriptum ingredimur servo nostro eodem modo quo ad Telegram, sed in specie pro Alice scriptum erit, e.g. www.my_server.ru/webhook_alice.php.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Vocem eligimus qua arte loquemur, Alicia vox magis placet.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Si tantum in mobilibus machinis vel in navigatro operari cogitas, elige "machinam cum velo debes."

Deinde intrant occasus catalogi artium Aliciae. Si vis verbi "brandi" pro activatione uti, debes cognoscere notam paginae in webmaster.yandex.ru servitium.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Omnia cum uncinis, ad scripta transeamus.

Telegraphum bot script

Incipiamus cum scripto pro Telegram.

Bibliothecam coniungimus ubi epistulae ab autocineto et Alicia procedentur:

include_once 'webhook_parse.php';

Bot: nostri signum posuimus;

$tg_bot_token = "_____YOUR_BOT_TOKEN_____";

Data accipimus:

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

Parsing notitia in variabiles:

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

Nunc cum variabilibus operari potes:

Signa $ - hic nunc sunt omnia verba quae usor ingressus est

$ User_id - user id hic

$ Msg_chat_id - chat in quo bot accepit imperium

$msg_user_name - username

Deinde munus Parse_Tokens appellamus pro dispensando:

$Out_Str = Parse_Tokens($tokens);

Et responsum misit;

Send_Out($user_id, $Out_Str);

munus Send_Out simplex est et similis est:

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

Scientia scriptum est Yandex.Alisa

Nunc ad scriptionem pro Alicia transeamus, eadem fere est ac pro Telegram.

Bibliothecam quoque coniungimus ubi nuntii e autocineto et Alicia procedentur, plus bibliothecam cum classibus pro Alice:

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

Data accipimus:

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

Parsing notitia in variabiles:

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

Paucae variabiles hic pauciores sunt:

Signa $ - hic nunc sunt omnia verba quae usor ingressus est

$ User_id - user id hic

Yandex constanter pingit artes evulgatas, et lineam addidi ut scripturam statim exiret sine plena processui nuntii incipiens:

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

Parse_Tokens vocamus munus processus, idem est ac telegraphum:

$Out_Str = Parse_Tokens($tokens);

Et responsum misit;

Send_Out($user_id, $Out_Str);

Munus Send_Out hic magis complicatus est:

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

Complevit scripturam pro Alicie.

Parse_Tokens processus ipsius scripti factum est solum ad exemplum, quodlibet compescere et dispensando facere potes.

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

Si debes communicare cum usore formae multiplicioris quam quaestionis-responsionis, tunc debes servare usoris $usoris et notitia iam recepta ab utente in datorum (exempli gratia mysql) et eas resolvere in Parse_Tokens ad munus.

Profecto haec fere omnia sunt, si omnia recte aguntur, tum telegraphum autocinetum iam in promptu est, Aliciae sollertia sedari potest. dialogs.yandex.ru/developereundo ad novam artem in probatione tab.

Yandex.Alisa et Telegram bot in PHP eadem functionality

Si omnia recte operantur, artem moderationis strepitando "Ad modum" conjunctionem mittere potes.

Nunc habes duo automata in diversis suggestis simul, quae eodem modo operantur.

Documenta ad Yandex.Dialogues ministerium hic

Plena scripta missae in github ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ.

Source: www.habr.com