Я думаю, что вы перепутали несколько понятий здесь.Похоже, ваше ask_for_permission
намерение вызывает помощник разрешения - эта часть выглядит нормально.
Как часть этого, вы устанавливаете confirm_permissions
контекст .Контекст отличается от намерения.То, что вы говорите, устанавливая выходной контекст таким, какой вы есть, заключается в том, что вы находитесь в состоянии с именем «verify_permissions», и при обработке ответов могут оцениваться Intents, которые должны запускаться только в этом состоянии.
Вместо этого я думаю, что вы хотите создать confirm_permissions
намерение .В Dialogflow ответом будет событие actions_intent_PERMISSION
, которое вы можете создать для обработки намерения.Это может выглядеть примерно так:
Обратите внимание:
- Имя намерения - то, что вы хотитекак и другие Intents.
- Событие является важным битом и должно быть установлено.Это совпадает с именем, которое отправляет Actions в Google как специальное имя намерения AoG (и заменяет точки подчеркиванием).
- Поскольку мы указываем событие, мы не используем обучение
- Не забудьте включить выполнение.
На стороне выполнения ваш код выглядит так, как будто он должен работать.
Причина, по которой вы получили«Скажи это еще раз» и тому подобные ответы: они взяты из намерения по умолчанию.Поскольку никакие Intents не были настроены так, чтобы соответствовать событию разрешения, он использовал заданное резервное намерение.