Функция «Трансляция» недоступна для действий, разработанных пользователем, и, вероятно, не является хорошей схемой для использования в любом случае - если пользователям потребуется некоторое время ждать ответа, они, вероятно, не хотят ответанеожиданно объявляется, когда они этого не ожидают.
Действия обычно подразумевают разговорное, а не отнимают время, чтобы ответить с ответом, поэтому существует 5-секундный лимит на продолжительность выполненияделать обработку.Если вам нужно некоторое время, у вас есть несколько доступных вариантов:
Во-первых, вы можете использовать какой-то другой метод вне Assistant для доставки ответа - возможно, с помощью чего-то вроде Firebase Cloud Messaging илиотправка электронной почты пользователю.
Точно так же вы можете использовать уведомления.В этом случае ваша Java-программа отправит пользователю уведомление через Помощника, когда информация будет доступна, и сохранит результат.Затем пользователь может активировать уведомление, чтобы продолжить разговор и получить результат.Преимущество этого заключается в том, что ответ не просто размыт, возможно, когда пользователь не готов к этому, но имеет недостаток в том, что ораторы (пока) не поддерживают уведомления.
Вы также можетеРассмотрите возможность использования Media Response, чтобы настроить периодический опрос новых сообщений.По этой схеме вы запускаете Java-программу, которая получает результат, а затем сохраняют его так, чтобы ваш сервер выполнения мог получить к нему доступ.В своем ответе пользователю, в котором говорится, что вы работаете с результатами, вы включите Media Response для некоторого звука, который воспроизводится, скажем, в течение 15 секунд.Когда аудио закончится, ваше действие будет вызвано снова, и вы можете проверить, доступен ли результат.Если это так, вы отправляете результат и продолжаете или заканчиваете разговор.В противном случае просто отправьте медиа-ответ.