Http ошибка в ответе webhook 500 алиса

HA установлен через docker. Yandex Station работает отлично. Но не получается заставить работать диалоги.
При попытке указать данные в Yandex Dialogs получаю ошибку:
Ошибка при проверке навыка:
HTTP ошибка в ответе webhook: 500

При этом навык создается в черновики, но не публикуется. Если опубликовать вручную, то Алиса говорит, мол навык не отвечает.
https://XXX.duckdns.org/api/yandex_dialogs -> 405: Method Not Allowed
В настройках Yandex Dialogs пусто, нет id.

Не могу понять, что делаю не так.

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

Модератор: immortal

Аватара пользователя

Amarok

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

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

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

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

Ошибки валидации:
— Webhook URL: 1. HTTP ошибка в ответе webhook: 500

Что не так и куда копать? По https моя Алиса отвечает.

Аватара пользователя

Amarok

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

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

Сообщение

Amarok » Ср янв 09, 2019 11:59 am

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

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

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

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

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

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

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

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

С уважением,
команда Яндекс Диалогов

Как замутить это приветственное сообщение?

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 раз
Поблагодарили:
51 раз

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

Сообщение

vitt76 » Ср янв 09, 2019 1:09 pm

chimik, пароли уберите из кода ))

За это сообщение автора vitt76 поблагодарил:
chimik (Ср янв 09, 2019 3:13 pm)

Broadlink + Orange Pi PC ARMBIAN 5.31

Аватара пользователя

Amarok

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

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

Сообщение

Amarok » Ср янв 09, 2019 1:34 pm

vitt76 писал(а): ↑

Ср янв 09, 2019 1:09 pm


chimik, пароли уберите из кода ))

Кстати, как пароли считывать из основного конфига?

Аватара пользователя

vitt76

Сообщения: 372
Зарегистрирован: Вс апр 09, 2017 2:36 pm
Благодарил (а):
101 раз
Поблагодарили:
51 раз

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’ , проверяя его работоспособность. Если навык не будет отвечать, то через некоторое время его удалят

Пока сделал фильтр на это слово. Вот только не знаю — закрывать сессию или нет?

Аватара пользователя

Amarok

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

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

Сообщение

Amarok » Чт янв 24, 2019 8:41 am

C_3AXAPOB писал(а): ↑

Ср янв 23, 2019 9:37 pm


С третьего раза прошел модерацию. Модератору не нравилась активационная фраза.

Можно пример правильной и неправильной фразы?

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);

Searching on a solution for the error “Webhook 500 internal server error”? We can help you.

Usually, this error indicates bad scripting, permission problems, etc.

At Bobcares, we often get requests to fix Webhook errors, as a part of our Server Management Services.

Today, let’s see how our Support Engineers fix the Webhook 500 error in the server.

Why does Webhook show internal server error?

Before getting deeper into the error, it’s important to know about Webhook. So let’s get into it.

Webhook is one of the easiest ways to set up custom callbacks. These user-defined HTTP callbacks can serve many purposes like getting real-time data, passing it on to an application, etc.

Similarly, it also processes the data and gives something in return. Like, sending welcome emails when a domain gets a new user. This reduces the task of monitoring every activity on a website.

But, errors in Webhook is tricky. One such error is 500 internal server error.

This is a very general status code. Usually, it indicates errors in the webserver. And the webserver cannot complete the user request. That is, the server is unable to identify the reason for it.

Since the webhook is customizable, the error normally occurs due to bad scripting, insecure URL requests, etc.

How we fix the Webhook 500 error?

Internal server errors are difficult to troubleshoot. However, our Support Engineers with expertise over a decade fix these errors for our customers. Let’s see a few instances of this.

Use of insecure connection

Recently, one of our customers approached us with a Webhook 500 error. He had set up a Dialogflow, and the Webhook keeps on failing. Dialogflow is a chatbot building framework.

The error message on its diagnostic info appeared as:

Webhook 500 internal server error in Dialogflow.

So, our Support Team checked his script. We found that his code used HTTP requests instead of https. Hence the URLs were not publicly accessible and this leads to the error. We corrected the code and updated the same.

At the same time, the website should also have an SSL certificate. Setting up a self-signed certificate is not enough as Dialogflow doesn’t support it.

Bad scripting

Webhook users can customize its use. But many times it ends up in errors. And the reason for this is bad scripting.

Our customers approach us for 500 errors in Webhook. Firstly, we check their scripts. If our Experts find errors we correct it and update the same. In most situations, this can fix the error.

Permission errors

Usually, file and folder permissions can result in Webhook 500 errors. So, whenever our Support Team gets requests to fix this error, we check permissions.

Server files and folders need correct permissions and ownerships set in order to work properly. If Websites requests files for which the server has no access then it will lead to an error.

[Need assistance in fixing Webhook errors? – We’ll help you.]

Conclusion

In short, webhook 500 internal server error occurs due to bad scripting, permission errors, insecure URL requests and so on. Today, we saw how our Support Engineers fix this error for our customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Привет! Спасибо за реализацию на php!
Но не публикуется.
Ругается так: Ошибка в ответе Webhook

Хотя через Postman на запрос с сервера (Подсмотрел в логе):
{"meta":{"client_id":"Developer Console","locale":"ru-RU","timezone":"UTC"},"request":{"command":"test","original_utterance":"test","type":"SimpleUtterance"},"session":{"message_id":0,"new":true,"session_id":"61c5f901-22ba20bd-534104b2-1db70","skill_id":"3bbaf06a-1318-4f90-a9da-0a37c7967d8f","user_id":"FB80F23261CBB89F7D78B179AB439E543267D498BCADAAB0CE6223108268C08D"},"version":"1.0"}
отвечает так:

{
    "version": "1.0",
    "session": {
        "session_id": "61c5f901-22ba20bd-534104b2-1db70",
        "message_id": 0,
        "user_id": "FB80F23261CBB89F7D78B179AB439E543267D498BCADAAB0CE6223108268C08D"
    },
    "response": {
        "text": "В вашем запросе 4 символов",
        "tts": "в в+ашем запр+осе 4 с+имволов",
        "buttons": [],
        "end_session": false
    }
}

Вроде все совпадает с инструкцией…
Что может быть?

Recommend Projects

  • React photo
    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo
    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo
    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo
    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo
    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo
    Laravel

    A PHP framework for web artisans

  • D3 photo
    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo
    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo
    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo
    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo
    Alibaba

    Alibaba Open Source for everyone

  • D3 photo
    D3

    Data-Driven Documents codes.

  • Tencent photo
    Tencent

    China tencent open source team.

Понравилась статья? Поделить с друзьями:
  • Http код ошибки неправильного логина
  • Http запрос не отправлен ошибка работы с интернет егаис
  • Http запрос код ошибки 500
  • Http запрос код ошибки 400
  • Http время ожидания запроса ошибка