Страница 2 из 3
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Вт янв 08, 2019 11:20 am
Amarok
При попытке пройти модерацию получаю ответ:
Код: Выделить всё
Ошибки валидации:
— Webhook URL: 1. HTTP ошибка в ответе webhook: 500
Что не так и куда копать? По https моя Алиса отвечает.
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 09, 2019 11:59 am
Amarok
Получил ответ от модераторов:
Код: Выделить всё
Здравствуйте!
Ваш навык не прошёл модерацию по следующим причинам:
Активационные имена:
Каждое активационное имя должно являться аббревиатурой либо склонением названия навыка, либо сокращенной/развернутой формой от Названия навыка
Примеры:
для Названия навыка "Космический квест" можно использовать имя "игра космический квест";
для названия навыка "ТКС" можно использовать имя "Тиньков";
для названия навыка "Сбербанк" можно использовать "Сбербанку", "Сбербанка".
Имя должно содержать уникальные слова, а не только общие фразы и/или фразы, являющиеся категориями товаров, сервисов или контента.
Можно:"Настоящий белорус", "Подарки от Максимки", "Случайный хайку" - это простые, но в тоже время оригинальные названия.
Нельзя: "Чай" - это категория товаров, "Как дела" - это очень общая фраза, "Англо-русский словарь" - это категория контента, "Умный дом" - это категория товаров, "Продуктовый магазин" - это категория сервисов.
Описание:
Описание должно содержать информацию о функциях навыка Алисы, то есть это должен быть осмысленный текст описания функций и создателей диалога.
Приветственное сообщение:
Приватный навык должен сообщать пользователям в приветственном сообщении о том, что он является закрытым
За разъяснениями вы всегда можете обратиться в службу поддержки: [email protected]
С уважением,
команда Яндекс Диалогов
Как замутить это приветственное сообщение?
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 09, 2019 1:07 pm
chimik
Код: Выделить всё
<?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'] = '*******';
$_SERVER['PHP_AUTH_PW'] = '***';
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";
//$speech02 = current(SQLSelectOne($sqlQuery));
$speech = "Принято: $text";
if ($text == 'пока') $speech = "Пока Пока";
//отвечаем яндексу
if ($sessionnew == true) $speech = "Привет друзья! Этот навык является закрытым и предназначен для моей семьи и гостей моего дома. Чем могу помочь?";
$response = new \stdClass();
$response->response->text = $speech;
$response->response->tts = $speech;
$response->response->end_session = false;
if ($text == 'пока') $response->response->end_session = true;
$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);
?>
У меня так. Со второго раза модерацию прошла. Проблема: в систему сыпется команда "ping". Что это? или достаточно отфильтровать команду?
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 09, 2019 1:09 pm
vitt76
chimik, пароли уберите из кода ))
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 09, 2019 1:34 pm
Amarok
vitt76 писал(а): Ср янв 09, 2019 1:09 pm
chimik, пароли уберите из кода ))
Кстати, как пароли считывать из основного конфига?
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 09, 2019 3:07 pm
vitt76
Да, наврно, можно было бы теоретически заинклюдить конфиг и считать оттуда, я что-то не подумал
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 16, 2019 7:30 pm
Stasev
chimik писал(а): Ср янв 09, 2019 1:07 pm
У меня так. Со второго раза модерацию прошла. Проблема: в систему сыпется команда "ping". Что это? или достаточно отфильтровать команду?
Как победили пинги?
18:26 Алиса: Неизвестная команда...
18:26 Admin: ping
В интернетах пишут:...
Раз в 10 сек Яндекс отправляет навыку сообщение ‘ping’ , проверяя его работоспособность. Если навык не будет отвечать, то через некоторое время его удалят
Пока сделал фильтр на это слово. Вот только не знаю - закрывать сессию или нет?
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Ср янв 23, 2019 9:37 pm
C_3AXAPOB
С третьего раза прошел модерацию. Модератору не нравилась активационная фраза.
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Чт янв 24, 2019 8:41 am
Amarok
C_3AXAPOB писал(а): Ср янв 23, 2019 9:37 pm
С третьего раза прошел модерацию. Модератору не нравилась активационная фраза.
Можно пример правильной и неправильной фразы?
Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)
Добавлено: Чт янв 24, 2019 10:21 am
C_3AXAPOB
Amarok писал(а): Чт янв 24, 2019 8:41 am
Можно пример правильной и неправильной фразы?
Неправильные фразы:
управдом
- надо два слова
мой управдом -
недостаточно уникальная фраза
Правильная фраза:
господин управдом
Соответственно можно вызвать так
Алиса, попроси господина управдома выключить свет в комнате
или так
Алиса, скажи господину управдому выключить свет в комнате
Еще одной из претензий было вот это
Вебхук и сценарий:
Навык должен отдавать инструкцию по своему использованию на команды "Помощь" и "Что ты умеешь".
Пришлось тоже добавить.
Ещё я в вебхук добавил фильтр на "ping"
Код: Выделить всё
if ($text !== 'ping') say(htmlspecialchars($text), 0, 1);