ʻ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.
E koho /newbot
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 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,
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
E wehe ʻia ke kamaʻilio hoʻonohonoho akamai.
Hoʻomaka mākou e komo i nā hoʻonohonoho akamai.
E hookomo i ka inoa o kou akamai.
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.
Koho mākou i ka leo e kamaʻilio ai ke akamai, makemake nui au i ka leo o Alice.
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 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.
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
Hoʻopuka ʻia nā palapala piha ma github
Source: www.habr.com