Zvakanaka masikati.
Pane zvakawanda zvinyorwa pamusoro peTeregiramu bots, asi vanhu vashoma vanonyora nezvehunyanzvi hwaAlice, uye ini handina kuwana chero ruzivo rwekuita bot imwechete, saka ndakafunga kugovera ruzivo rwangu rwekuita nyore Telegraph bot uye Yandex.Alice hunyanzvi hwesaiti ine basa rakafanana.
Saka, ini handisi kuzokuudza nzira yekusimudza sevha yewebhu uye kuwana ssl chitupa, zvakakwana zvakanyorwa nezvazvo.
Kugadzira Telegraph bot
Kutanga, ngatigadzire bot yeTeregiramu, pane izvi tinoenda kuTeregiramu totsvaga BotFather bot ipapo.
Sarudza /newbot
Tinopinda zita rebhoti iro richapindura, zvino tinoisa zita rebhoti, mukupindura tinowana chiratidzo chekutonga bot, tinonyora pasi kiyi iyi, ichatibatsira mune ramangwana.
Nhanho inotevera ndeyekuudza maseva eTeregiramu kuti ndeipi server yekutumira data kubva kubhoti kuenda. Kuti tiite izvi, tinogadzira chinongedzo chefomu:
https: //api.telegram.org/bot___Π’ΠΠΠΠ___/setWebhook?url=https://____ΠΠ£Π’Π¬_ΠΠ_Π‘ΠΠ ΠΠΠ’Π___
___TOKEN___ tinotsiva nechiratidzo chedu kubva kubhoti, yakagamuchirwa kare
__PATH_TO_SCRIPT____ tinotsiva nekero yescript pane server yedu apo data ichagadziriswa (semuenzaniso,
Pane dambudziko pano, iyo api.telegram.org server iri pasi pekuvharika, asi iwe unogona kuita izvi: renda iyo yakachipa sevha uko pasina zvirambidzo uye ipa murairo kubva kune inonyaradza server.
wget ___ΠΠΠΠ£Π§ΠΠΠ¨ΠΠΠ‘Π―_ΠΠΠ ΠΠ‘___
Ndizvozvo, iyo Telegraph bot inogadzirwa uye yakabatana kune yako server.
Kugadzira hunyanzvi hweYandex.Alisa
Ngatienderere mberi nekugadzira hunyanzvi hweYandex.Alice.
Kuti ugadzire hunyanzvi, unofanirwa kuenda kune Yandex.Dialogues vanogadzira peji
Iyo dialog yezvigadziriso zveunyanzvi ichavhurwa.
Tinotanga kupinda muzvirongwa zveunyanzvi.
Isa zita reunyanzvi hwako.
Zita rekushandisa rinofanira kusarudzwa zvakanyatsonaka kuitira kuti Alice arinzwisise nenzira kwayo, kubva kune nuances - nharembozha ine Alice uye makoramu seYandex.Station kana Irbis A anogona kuona mazwi zvakasiyana.
Isu tinopinda nzira yekuenda kune script pane yedu server nenzira yakafanana neyeTeregiramu, asi ichave script yakanangana naAlice, semuenzaniso.
Isu tinosarudza izwi iro hunyanzvi huchataura naro, ndinoda izwi raAlice zvakanyanya.
Kana ukaronga kushanda chete panharembozha kana mubrowser, wobva wasarudza "Unoda mudziyo une skrini."
Tevere, pinda marongero ehunyanzvi hwaAlice kabhuku. Kana iwe ukaronga kushandisa izwi rekuti "brand" kuita activation, unofanirwa kuongorora webhusaiti yemhando mune webmaster.yandex.ru service.
Ndizvo chete nezvirongwa, ngatienderere mberi kune zvinyorwa.
Telegraph bot script
Ngatitangei nechinyorwa cheTeregiramu.
Isu tinobatanidza raibhurari uko mameseji kubva ku bot naAlice achagadziriswa:
include_once 'webhook_parse.php';
Isu tinoseta chiratidzo chebhoti yedu:
$tg_bot_token = "_____YOUR_BOT_TOKEN_____";
Isu tinogamuchira data:
$request = file_get_contents('php://input');
$request = json_decode($request, TRUE);
Kupatsanura data kuita zvakasiyana:
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);
}
Iye zvino unogona kushanda nemhando dzakasiyana:
$tokens - heano ikozvino mazwi ese akaiswa nemushandisi
$user_id - mushandisi id pano
$msg_chat_id - chat umo bot yakagamuchira murairo
$msg_user_name - username
Tevere, tinodaidza Parse_Tokens basa rekugadzirisa:
$Out_Str = Parse_Tokens($tokens);
Uye tumira mhinduro:
Send_Out($user_id, $Out_Str);
iyo Send_Out basa iri nyore uye rinotaridzika seizvi:
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 script yeYandex.Alisa
Zvino ngatienderere mberi kune script yaAlice, yakada kufanana neyeTeregiramu.
Isu tinobatanidzawo raibhurari uko mameseji kubva ku bot naAlice achagadziriswa, pamwe neraibhurari ine makirasi aAlice:
include_once 'classes_alice.php';
include_once 'webhook_parse.php';
Isu tinogamuchira data:
$data = json_decode(trim(file_get_contents('php://input')), true);
Kupatsanura data kuita zvakasiyana:
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'];}
}
}
Pane mashoma mashoma akasiyana pano:
$tokens - heano ikozvino mazwi ese akaiswa nemushandisi
$user_id - mushandisi id pano
Yandex inogara ichitsvaga hunyanzvi hwakadhindwa, uye ini ndakawedzera mutsara kuti ubve ipapo script pasina kutanga kuzara kwemeseji:
if (strpos($tokens[0], "ping") > -1) {Send_Out("pong", "", true);}
Isu tinodaidza Parse_Tokens basa rekugadzirisa, rakafanana neTeregiramu:
$Out_Str = Parse_Tokens($tokens);
Uye tumira mhinduro:
Send_Out($user_id, $Out_Str);
Basa reSend_Out rakanyanya kuomarara pano:
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();
}
Akapedza script yaAlice.
Iyo Parse_Tokens yekugadzirisa script pachayo yakagadzirwa chete semuenzaniso, unogona kuita chero cheki uye kugadzirisa ipapo.
function Parse_Tokens($tokens)
{
$out = "";
// do something with tokens //
$out = "Your eneter " . count($tokens) . " words: " . implode($tokens, " ");
return $out;
}
Kana iwe uchida kutaurirana nemushandisi wefomu yakaoma kunzwisisa kupfuura mubvunzo-mhinduro, saka iwe unozofanirwa kuchengetedza mushandisi $user_id uye data rakatogamuchirwa kubva kumushandisi mudura (semuenzaniso, mysql) uye ongorora mukati. iyo Parse_Tokens basa.
Chaizvoizvo, izvi zvinenge zvese, kana zvese zvikaitwa nemazvo, ipapo Telegraph bot yatovepo, hunyanzvi hwaAlice hunogona kuongororwa.
Kana zvinhu zvose zvichishanda nemazvo, unogona kutumira unyanzvi hwekuenzanisa nekudzvanya bhatani re "For moderation".
Iye zvino une mabhoti maviri emapuratifomu akasiyana kamwechete, anoshanda nenzira imwechete.
Zvinyorwa zveYandex.Dialogues sevhisi
Zvinyorwa zvizere zvakatumirwa pa github
Source: www.habr.com