αα½ααααΈααααα
ααΆαα’αααααααΆα
αααΎαααΎαααααΆααα Telegram bots ααα»ααααααΆαααα»ααααα·α
ααΆααααααααααα’αααΈααααΆααααααΆαα Alice α αΎααααα»ααα·αααΆαααααΎαααααααΆαα’αααΈαααααααααΎα bot αααα½ααα ααΌα
αααααααα»ααααααα
α
α·αααα
ααααααααααα·ααααααααααααα»αα’αααΈαααααααααΎα Telegram bot ααΆαααα αα·αααααΆα Yandex.Alice αααααΆααααα ααααααααααΆααα»αααΆαααΌα
ααααΆα
ααΌα
αααα αααα»αααΉααα·αααααΆααα’αααααΈαα·ααΈαααααΎα web server αα·αααα½αααΆααα·ααααΆαααααα ssl αα ααΊαααααααααΆααααααΌαααΆααααααα’αααΈααΆα
αααααΎα Telegram bot
ααααΌα ααΎααααααΎα Telegram bot αααααΆααααΏαααα ααΎαα αΌααα Telegram α αΎαααααααα BotFather bot αα ααΈαααα
ααααΎαααΎα /newbot
ααΎααααα
αΌαααααααααα bot αααααΆααΉαααααΎααα αααααΆααααααΎααααα
αΌαααααααααα bot ααΆααΆαααααΎαααααΎαααα½αααΆααααααΆαααααΆααααΎααααΈααααααααα bot ααΎαααααααααααΉααααααΆααΉαααΆααααααααααααααΆααααΎαααΆαααα’ααΆααα
ααα αΆααααααΆααααΊααααΆαααααΆαααΈααα Telegram ααΆααΎαααΆαααΈαααααΆαααααααΌααααααΌααα·ααααααααΈ bot αα
α ααΎααααΈααααΎααΌα
αααααΎααααααΎααααααααΆαααααααααα:
https: //api.telegram.org/bot___Π’ΠΠΠΠ___/setWebhook?url=https://____ΠΠ£Π’Π¬_ΠΠ_Π‘ΠΠ ΠΠΠ’Π___
___TOKEN___ ααΎααααα½αααααααααΆαααααΆααααααααΎαααΈ bot αααααΆαααα½ααα»αα
____PATH_TO_SCRIPT____ ααΎααααα½ααααα’αΆααααααΆαααααααααΈααα
ααΎαααΆαααΈαααααααααΎα ααααα·ααααααααΉαααααΌαααΆαααααΎαααΆα (α§ααΆα ααα
ααΆααααα αΆαα ααΈααα αααΆαααΈααα api.telegram.org αααα·ααα αααααααΆααααααααΆαα ααα»ααααα’αααα’αΆα ααααΎααΌα αααααΆαα αα½ααααΆαααΈααααααααααααα»ααααααααΆαααΆαααΉααααααΉα α αΎααααααααΆααααααααΆααΈαα»αααΌααααααΆαααΈαααααα
wget ___ΠΠΠΠ£Π§ΠΠΠ¨ΠΠΠ‘Π―_ΠΠΠ ΠΠ‘___
αααα αΎαααΆααΆ Telegram bot ααααΌαααΆααααααΎα αα·αααααΆαααα αααΆαααΈαααααααα’αααα
αααααΎαααααΆααααααΆαα Yandex.Alisa
α αΌααααααααααΎαααααΆααααααΆαα Yandex.Alice α
ααΎααααΈαααααΎαααααΆα α’αααααααΌαα
αΌααα
ααΆαααααααα’αααα’αα·αααααα Yandex.Dialogues
αααα’ααααΆααααααααααΆαααΉαααΎαα
ααΎαα
αΆααααααΎαα
αΌααα
αααα»αααΆααααααααααΆαα
αααα αΌααααααααααΆαααααα’αααα
αααααααΆαααααΎα±ααααααααα½αααααααΌαααΆαααααΎαααΎααααΆααααα»αααααααααααΎααααΈα±αα Alice αααααΆαααΆαααααΉαααααΌαααΈ nuances - αααααα·ααΈααΌαααααααααααΆα Alice αα·ααα½αααααΌα
ααΆ Yandex.Station α¬ Irbis A α’αΆα
αααααΆααααα»αααααΆα
ααΎααααα
αΌαααααΌααα
ααΆααααααααΈααα
ααΎαααΆαααΈαααααααααΎαααΆαααααααΌα
ααααΆααΉα Telegram ααα ααα»ααααααΆααΉαααααΆαααΆααααααΈαααΆαα·ααααααααΆαα Alice α§ααΆα ααα
ααΎαααααΎαααΎαααα‘αααααααααΆαααΉααα·ααΆα αααα»αα
αΌαα
α·αααααα‘αααααα Alice α
αααΎαααΆαα
ααααα·αααΎα’αααααΆαααααααααααΎααΆαααααΎα§αααααα
ααα α¬αααα»ααααααα·ααΈαα»αααααΆαα’ααΈαααΊαα·α αααααΆααααααααΎαααΎα "α’αααααααΌαααΆαα§ααααααααααΆαα’αααααα"α
αααααΆαααααααα αΌαααΆαααααααααααΆααααΆααΆα‘α»αααααΆαααααα’αΆααΈαα ααααα·αααΎα’αααααΆαααααααααααΎααΆααα "αααΆα" αααααΆααααΆαααααΎα±ααααααα α’αααααααΌααααααααααΆααααα ααααααααααααΆααα αααα»αααααΆαααα webmaster.yandex.ru α
αααα αΎαααΆααΆααα’ααααΆαα½αααΉαααΆαααααα ααααααααα
ααααααΈαα
ααααααΈα Telegram bot
α αΌαα αΆααααααΎαααΆαα½αααΉαααααααΈααααααΆαα Telegram α
ααΎαααααΆαααααααΆααααααααΆαααΈ bot αα·α Alice ααΉαααααΌαααΆαααααΎαααΆαα
include_once 'webhook_parse.php';
ααΎαααααααα·αα·ααααααααΆαα bot ααααααΎαα
$tg_bot_token = "_____YOUR_BOT_TOKEN_____";
ααΎαααα½αααΆααα·ααααααα
$request = file_get_contents('php://input');
$request = json_decode($request, TRUE);
ααααα·αααααααα ααΆα’αααα
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);
}
α₯α‘αΌαα’αααα’αΆα ααααΎααΆαααΆαα½αα’αααα
$tokens - α₯α‘αΌαααααααααΊααΆααΆαααααΆααα’αααααα’αααααααΎααααΆααααΆααααα αΌα
$user_id - ααααααααΆααα’αααααααΎααααΆαααα ααΈααα
$msg_chat_id - ααααααα bot ααΆαααα½αααΆααααααααΆ
$msg_user_name - αααααα’αααααααΎααααΆαα
αααααΆααααΎαα α αα»αααΆα Parse_Tokens αααααΆααααααΎαααΆαα
$Out_Str = Parse_Tokens($tokens);
α αΎαααααΎααΆαααααΎαααα
Send_Out($user_id, $Out_Str);
αα»αααΆα Send_Out ααΊααΆαααα α αΎαααΎααα ααΌα αααα
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);
}
ααααααΈαααααΆααααααΆαα Yandex.Alisa
α₯α‘αΌααααααΌααααααα ααααααΈααααααΆαα Alice ααΆααααΎαααααΌα ααααΆααΉα Telegram αααα
ααΎαααααααΆαααααααΆααααααααΆαααΈ bot αα·α Alice ααΉαααααΌαααΆαααααΎαααΆα αα½αααΆαααααααΆααααααααΆαααααΆαααααααΆαα Aliceα
include_once 'classes_alice.php';
include_once 'webhook_parse.php';
ααΎαααα½αααΆααα·ααααααα
$data = json_decode(trim(file_get_contents('php://input')), true);
ααααα·αααααααα ααΆα’αααα
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'];}
}
}
ααΆαα’ααααα½αα ααα½αααΌα αα ααΈαααα
$tokens - α₯α‘αΌαααααααααΊααΆααΆαααααΆααα’αααααα’αααααααΎααααΆααααΆααααα αΌα
$user_id - ααααααααΆααα’αααααααΎααααΆαααα ααΈααα
Yandex αααα pings ααααΆαααααα»αααααααΆα α αΎααααα»αααΆααααααααααααΆαααα½αααΎααααΈα ααααΈααααααΈαααααΆααααααα·αα αΆααααααΎαααααΎαααΆαααααααααααΆαα
if (strpos($tokens[0], "ping") > -1) {Send_Out("pong", "", true);}
ααΎαα α αα»αααΆα Parse_Tokens αααααΆααααααΎαααΆα ααΆααΌα ααααΆαα ααΉα Telegramα
$Out_Str = Parse_Tokens($tokens);
α αΎαααααΎααΆαααααΎαααα
Send_Out($user_id, $Out_Str);
αα»αααΆα Send_Out ααΆαααΆααααα»αααααΆαααΆααα ααΈαααα
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();
}
ααΆααααα ααααααααΈααααααΆααα’αΆααΈαα
ααααααΈαααααΎαααΆα Parse_Tokens αααα½αααΆααααΌαααΆααααααΎαα‘αΎααα»αααααΆααααααΆααα§ααΆα ααα α’αααα’αΆα ααααΎααΆααα·αα·ααα αα·αααααΎαααΆααα ααΈαααα
function Parse_Tokens($tokens)
{
$out = "";
// do something with tokens //
$out = "Your eneter " . count($tokens) . " words: " . implode($tokens, " ");
return $out;
}
ααααα·αααΎα’αααααααΌαααΆαααααΆααααααααΆαα½αα’αααααααΎααααΆαααααααααααα»αααααααΆαααΆααααα½α-α ααααΎα αααα’αααααΉαααααΌααααααΆαα»α $user_id ααααα’αααααααΎααααΆαα αα·ααα·αααααααααααα½αααΆααα½α α αΎαααΈα’αααααααΎααααΆαααα αααα»αααΌαααααΆααα·αααααα (α§ααΆα ααα mysql) α αΎααα·ααΆααα½αααΆαα αααα»α αα»αααΆα Parse_Tokens α
ααΆααα·ααααααΊααααΎαααααΆααα’αα ααααα·αααΎα’αααΈαααααΌαααΆαααααΎααΆαααααΉαααααΌα ααα Telegram bot ααΆααα½α
α αΎα ααααΆααααα Alice α’αΆα
αα·αα·αααααΆαα
ααααα·αααΎα’αααΈαααααΎαααΆαααΆαααααΉαααααΌα α’αααα’αΆα
ααααΎααααΆααααααΆααααΆααααααααααα½ααααα
α»α
αααΌαα»α "αααααΆααααΆααααααααααα½α" α
α₯α‘αΌαααα α’αααααΆαααΌαααααααΈααααααΆαααααα·ααΆαααααααααΆαααα»αααααααα½α αααααααΎαααΆαααΆαααααααΌα ααααΆα
α―αααΆααααααΆααααααΆαααα Yandex.Dialogues
ααααααΈαααααααααΆααααα αααα
ααΎ github
ααααα: www.habr.com