Google действия, вызывающие HTTP Post API с использованием Actions-SDK не работает
Я пытаюсь вызвать один http пост API, когда пользователь дает необработанный ввод с помощью действий SDK, но я получаю сообщение об ошибке "действие не отвечает прямо сейчас. Попробуйте еще раз скоро", мой код выглядит следующим образом
if (assistant.getRawInput() == 'test') {
request({
url: url,
json: true
}, function (error, response, body) {
if (error) {
assistant.tell('There is some error!');
}
else {
assistant.tell('we got the response!');
}
}
)
с кодом нет проблем, так как он отлично работает отдельно с помощью команды узла, я новичок в действиях Google, пожалуйста, помогите
2 ответа
Сколько времени занимает выполнение запроса? Действия должны быть завершены в течение 5 секунд, и если URL-адрес, по которому вы звоните, занимает значительную часть этого времени, действие может истечь.
Я почти уверен, что вы обращаетесь к переменной помощника внутри обработчика обратного вызова для запроса. Попробуйте консольный журнал переменной помощника, когда обратный вызов будет выполнен (вы можете увидеть журналы консоли в журналах облака Google для функции), вы должны увидеть, что она не определена. Попробуйте использовать синтаксис жирной стрелки ES6, чтобы получить доступ к переменной помощника, например
if (assistant.getRawInput() == 'test') {
request({
url: url,
json: true
}, (error, response, body) => {
if (error) {
assistant.tell('There is some error!');
}
else {
assistant.tell('we got the response!');
}
}
)