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!');
          }
        }
      )

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