Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Amarok
Сообщения: 1409
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение Amarok » Вт янв 08, 2019 11:20 am

При попытке пройти модерацию получаю ответ:

Код: Выделить всё

Ошибки валидации:
— Webhook URL: 1. HTTP ошибка в ответе webhook: 500
Что не так и куда копать? По https моя Алиса отвечает.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1409
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение Amarok » Ср янв 09, 2019 11:59 am

Получил ответ от модераторов:

Код: Выделить всё

Здравствуйте!
Ваш навык не прошёл модерацию по следующим причинам:

Активационные имена:
Каждое активационное имя должно являться аббревиатурой либо склонением названия навыка, либо сокращенной/развернутой формой от Названия навыка
Примеры:
для Названия навыка "Космический квест" можно использовать имя "игра космический квест";
для названия навыка "ТКС" можно использовать имя "Тиньков";
для названия навыка "Сбербанк" можно использовать "Сбербанку", "Сбербанка".

Имя должно содержать уникальные слова, а не только общие фразы и/или фразы, являющиеся категориями товаров, сервисов или контента.
Можно:"Настоящий белорус", "Подарки от Максимки", "Случайный хайку" - это простые, но в тоже время оригинальные названия.
Нельзя: "Чай" - это категория товаров, "Как дела" - это очень общая фраза, "Англо-русский словарь" - это категория контента, "Умный дом" - это категория товаров, "Продуктовый магазин" - это категория сервисов.

Описание:
Описание должно содержать информацию о функциях навыка Алисы, то есть это должен быть осмысленный текст описания функций и создателей диалога.

Приветственное сообщение:
Приватный навык должен сообщать пользователям в приветственном сообщении о том, что он является закрытым

За разъяснениями вы всегда можете обратиться в службу поддержки: dialogs@support.yandex.ru

С уважением,
команда Яндекс Диалогов
Как замутить это приветственное сообщение?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
chimik
Сообщения: 77
Зарегистрирован: Пн янв 09, 2017 1:39 pm
Благодарил (а): 87 раз
Поблагодарили: 11 раз

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение chimik » Ср янв 09, 2019 1:07 pm

Код: Выделить всё

<?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". Что это? или достаточно отфильтровать команду?
Последний раз редактировалось chimik Ср янв 09, 2019 2:13 pm, всего редактировалось 1 раз.
Аватара пользователя
vitt76
Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а): 101 раз
Поблагодарили: 50 раз

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение vitt76 » Ср янв 09, 2019 1:09 pm

chimik, пароли уберите из кода ))
За это сообщение автора vitt76 поблагодарил:
chimik (Ср янв 09, 2019 3:13 pm)
Рейтинг: 1.2%
Broadlink + Orange Pi PC ARMBIAN 5.31
Аватара пользователя
Amarok
Сообщения: 1409
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение Amarok » Ср янв 09, 2019 1:34 pm

vitt76 писал(а):
Ср янв 09, 2019 1:09 pm
chimik, пароли уберите из кода ))
Кстати, как пароли считывать из основного конфига?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
vitt76
Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а): 101 раз
Поблагодарили: 50 раз

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение vitt76 » Ср янв 09, 2019 3:07 pm

Да, наврно, можно было бы теоретически заинклюдить конфиг и считать оттуда, я что-то не подумал
Broadlink + Orange Pi PC ARMBIAN 5.31
Stasev
Сообщения: 16
Зарегистрирован: Пн мар 19, 2018 12:55 am
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение Stasev » Ср янв 16, 2019 7:30 pm

chimik писал(а):
Ср янв 09, 2019 1:07 pm
У меня так. Со второго раза модерацию прошла. Проблема: в систему сыпется команда "ping". Что это? или достаточно отфильтровать команду?
Как победили пинги?
18:26 Алиса: Неизвестная команда...
18:26 Admin: ping
В интернетах пишут:...
Раз в 10 сек Яндекс отправляет навыку сообщение ‘ping’ , проверяя его работоспособность. Если навык не будет отвечать, то через некоторое время его удалят
Пока сделал фильтр на это слово. Вот только не знаю - закрывать сессию или нет?
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 100 раз

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение C_3AXAPOB » Ср янв 23, 2019 9:37 pm

С третьего раза прошел модерацию. Модератору не нравилась активационная фраза.
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Аватара пользователя
Amarok
Сообщения: 1409
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение Amarok » Чт янв 24, 2019 8:41 am

C_3AXAPOB писал(а):
Ср янв 23, 2019 9:37 pm
С третьего раза прошел модерацию. Модератору не нравилась активационная фраза.
Можно пример правильной и неправильной фразы?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
C_3AXAPOB
Сообщения: 510
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 124 раза
Поблагодарили: 100 раз

Re: Альтернативное решение по интеграции с Яндекс.диалоги (Алиса)

Сообщение C_3AXAPOB » Чт янв 24, 2019 10:21 am

Amarok писал(а):
Чт янв 24, 2019 8:41 am
Можно пример правильной и неправильной фразы?
Неправильные фразы:
управдом - надо два слова
мой управдом - недостаточно уникальная фраза

Правильная фраза:
господин управдом

Соответственно можно вызвать так

Алиса, попроси господина управдома выключить свет в комнате

или так

Алиса, скажи господину управдому выключить свет в комнате

Еще одной из претензий было вот это

Вебхук и сценарий:
Навык должен отдавать инструкцию по своему использованию на команды "Помощь" и "Что ты умеешь".


Пришлось тоже добавить.

Ещё я в вебхук добавил фильтр на "ping"

Код: Выделить всё

if ($text !== 'ping') say(htmlspecialchars($text), 0, 1);
Orange pi pc plus, megaD-2561, Xiaomi
--------------------------------------------------
http://connect.smartliving.ru/profile/908
Ответить