Size: a a a

Яндекс.Диалоги (сообщество разработчиков)

2019 February 04

🚀

🚀 in Яндекс.Диалоги (сообщество разработчиков)
это до следующего сброса только
лучше чтобы оно запоминало ваш user_id по паролю
хотя тут вероятность что ваш user_id достанется кому-то другому, но вряд-ли он воспользуется навыком
источник

ВВ

Валерий Вотяков... in Яндекс.Диалоги (сообщество разработчиков)
🚀
это до следующего сброса только
лучше чтобы оно запоминало ваш user_id по паролю
хотя тут вероятность что ваш user_id достанется кому-то другому, но вряд-ли он воспользуется навыком
можно пример на пхп?
источник

🚀

🚀 in Яндекс.Диалоги (сообщество разработчиков)
не могу к сожалению, только на nodejs, очень давно не писал на пхп
запишите в файл и читайте при старте сервиса, например
источник

ВВ

Валерий Вотяков... in Яндекс.Диалоги (сообщество разработчиков)
🚀
не могу к сожалению, только на nodejs, очень давно не писал на пхп
запишите в файл и читайте при старте сервиса, например
ну можно на нодежс. попробую понять
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
Валерий Вотяков
типа так?
if ($user_id != '257548') {$speech = "Привет! Это закрытый навык и он только для моей семьи."; return;}
если по простому то вполне так можно, просто этот юзер-ид может иногда меняться (недавно писали что колонки и андроиды сменили юзер-ид), так что лучше как-то более удобно.  пароль, или даже просто секретная фраза, которую надо сказать при первом запуске, сохранили этот юзер ид добавили в массив, закинули его в файл, если база не используется.

можно http://php.net/manual/ru/function.serialize.php и потом записать http://php.net/manual/ru/function.file-put-contents.php

потом наоборот - считал, десериализовал
источник

🚀

🚀 in Яндекс.Диалоги (сообщество разработчиков)
можно через глобальные переменные наверное, так проще всего, до следующего рестарта сервера
ну или файлы, это более постоянно
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
другой вопрос, если у вас сложности с кодом, то не боитесь что-то не так сделать и матрас сложится когда не надо?
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
ладно еще свет в туалете загорится, но матрас - это уже чревато
источник

ВВ

Валерий Вотяков... in Яндекс.Диалоги (сообщество разработчиков)
Pavel
другой вопрос, если у вас сложности с кодом, то не боитесь что-то не так сделать и матрас сложится когда не надо?
боюсь, но
источник

ВВ

Валерий Вотяков... in Яндекс.Диалоги (сообщество разработчиков)
<?php

//получаем данные
$requestBody = file_get_contents('php://input');

//декодим данные
$json = json_decode($requestBody);
$text = $json->request->command;
$sessionnew = $json->session->new;
$message_id = $json->session->message_id;
$session_id = $json->session->session_id;
$user_id = $json->session->user_id;

//передаем команду в систему
$_SERVER['PHP_AUTH_USER'] = 'name';
$_SERVER['PHP_AUTH_PW'] = 'password';
include_once("./config.php");
include_once("./lib/loader.php");
$session = new session("prj");
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);
include_once(DIR_MODULES . "application.class.php");
include_once("./load_settings.php");
//say(htmlspecialchars($text), 0, 1);

// читаем ответ
$sqlQuery = "SELECT MESSAGE
              FROM shouts
             WHERE MEMBER_ID = 0
             ORDER BY ID DESC
             LIMIT 1";

//$speech = current(SQLSelectOne($sqlQuery));
//$speech = 'Хорошо';
$speech = "Принято: $text";
if ($text == 'пока') $speech = "Пока!";

//отвечаем яндексу

//if ($sessionnew == true) {$speech = "Привет! Это закрытый навык и он только для моей семьи. Чем могу помочь?";}
if ($user_id != '35677') {$speech = "Привет! Это закрытый навык и он только для моей семьи.";} else {say(htmlspecialchars($text), 0, 1);}

$response = new \stdClass();
$response->response->text = $speech;
$response->response->tts = $speech;
$response->response->end_session = false;
$response->session->message_id = $message_id;
$response->session->session_id = $session_id;
$response->session->user_id = $user_id;
$response->version = '1.0';
echo json_encode($response);
?>
источник

ВВ

Валерий Вотяков... in Яндекс.Диалоги (сообщество разработчиков)
вроде так
источник

OK

Oleg Kuznetsov in Яндекс.Диалоги (сообщество разработчиков)
Ребята, подскажите.
Можно ли в ответе присылать ссылку на плеер/видео?

Есть ли где-то документация про это (что-то я не нашел)?
источник

EP

Elena Pershina in Яндекс.Диалоги (сообщество разработчиков)
нет, нельзя (
источник

EP

Elena Pershina in Яндекс.Диалоги (сообщество разработчиков)
только ссылку на внешний источник
источник

EP

Elena Pershina in Яндекс.Диалоги (сообщество разработчиков)
Хороший пример костыля тут есть: https://dialogs.yandex.ru/store/skills/5df78511-meditaciya-s-gido
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
Валерий Вотяков
<?php

//получаем данные
$requestBody = file_get_contents('php://input');

//декодим данные
$json = json_decode($requestBody);
$text = $json->request->command;
$sessionnew = $json->session->new;
$message_id = $json->session->message_id;
$session_id = $json->session->session_id;
$user_id = $json->session->user_id;

//передаем команду в систему
$_SERVER['PHP_AUTH_USER'] = 'name';
$_SERVER['PHP_AUTH_PW'] = 'password';
include_once("./config.php");
include_once("./lib/loader.php");
$session = new session("prj");
$db = new mysql(DB_HOST, '', DB_USER, DB_PASSWORD, DB_NAME);
include_once(DIR_MODULES . "application.class.php");
include_once("./load_settings.php");
//say(htmlspecialchars($text), 0, 1);

// читаем ответ
$sqlQuery = "SELECT MESSAGE
              FROM shouts
             WHERE MEMBER_ID = 0
             ORDER BY ID DESC
             LIMIT 1";

//$speech = current(SQLSelectOne($sqlQuery));
//$speech = 'Хорошо';
$speech = "Принято: $text";
if ($text == 'пока') $speech = "Пока!";

//отвечаем яндексу

//if ($sessionnew == true) {$speech = "Привет! Это закрытый навык и он только для моей семьи. Чем могу помочь?";}
if ($user_id != '35677') {$speech = "Привет! Это закрытый навык и он только для моей семьи.";} else {say(htmlspecialchars($text), 0, 1);}

$response = new \stdClass();
$response->response->text = $speech;
$response->response->tts = $speech;
$response->response->end_session = false;
$response->session->message_id = $message_id;
$response->session->session_id = $session_id;
$response->session->user_id = $user_id;
$response->version = '1.0';
echo json_encode($response);
?>
такое впечатление что тут какая-то копипаста с разных мест, без особого понимания
источник

P

Pavel in Яндекс.Диалоги (сообщество разработчиков)
выбор активационной фразы тут меньшая проблема, как по мне, извините.
источник

ВВ

Валерий Вотяков... in Яндекс.Диалоги (сообщество разработчиков)
Pavel
такое впечатление что тут какая-то копипаста с разных мест, без особого понимания
работает ведь. и я учусь
источник

OK

Oleg Kuznetsov in Яндекс.Диалоги (сообщество разработчиков)
Elena Pershina
только ссылку на внешний источник
т.е. по этой ссылке нужно будет перейти уже самостоятельно?
источник

X

Xottabb14 in Яндекс.Диалоги (сообщество разработчиков)
Alexander Sokolov
Да, проблема в этом. Ну и популярные варианты типа "мой дом" точно уже заняты...
Мой дом был некогда занят моим приватным навыком. и Стоило мне сдуру сменить вебхук😂 потом прилетели новые правила по активационным фразам и пропионерил я козырную активационную фразу. Тперь нынче она просто модерацию не пройдет. Увы...
источник