Есть ли у Google Actions уникальные идентификаторы?

При разработке для Alexa каждый навык имеет уникальный идентификатор. Это позволяет мне развивать несколько навыков, используя одну и ту же лямбда / кодовую базу, которые возвращают уникальную информацию на основе идентификатора навыка.

Однако из того, что я видел в Google Assistant, у Actions нет идентификаторов. Запросы включают уникальный userId и conversationId, И ответы включают intent id - но нет способа идентифицировать само действие.

Какие-нибудь идеи / указатели на вещи, которые я, возможно, пропустил?

1 ответ

Решение

Есть несколько способов приблизиться к этому, в зависимости от того, какую платформу вы используете для своего webhook.

Как для Dialogflow, так и для Action SDK вы всегда можете указать уникальный параметр запроса в качестве части webhook или даже иметь разные части пути webhook для перехода к одной и той же лямбде и исследовать либо значение запроса, либо путь. Преимущество заключается в том, что вы полностью контролируете возможные значения.

Если вы используете Dialogflow, для каждого намерения есть уникальный IntentID. Это может быть одним из способов отследить, какой из них был вызван. Но это кажется несколько глупым.

Также для Dialogflow вы можете установить уникальные заголовки в консоли Dialogflow, а затем проверить значение этих заголовков в своем веб-крюке. Опять же, у этого есть преимущество, которое дает вам контроль над ценностью.

Action SDK не имеет этой функции, но он передает маркер JWT в заголовке авторизации. Этот токен предназначен для проверки того, что он получен из правильного проекта (и от Google), но как только вы его расшифровали (и проверили), aud поле должно содержать тот же идентификатор проекта, что и проект в консоли действий.

Другие вопросы по тегам