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.
Elige / newbot
Botti nomen ingredimur quo respondebit, tum nomen automati ingredimur, respondemus tesseram automatis moderandi accipimus, hanc clavem scribimus, nobis in posterum usui erit.
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:
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
Disciplina occasus alternis aperiet.
Incipimus arte occasus ingredi.
Ingredere in arte nomen tuum.
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.
Vocem eligimus qua arte loquemur, Alicia vox magis placet.
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.
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.
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
Plena scripta missae in github
Source: www.habr.com