Невозможно получить маркер oauth от Google Sync action 1000 * Намерение в aws лямбда - PullRequest
0 голосов
/ 23 января 2020

Я использую aws лямбда-функцию для Google Smart Home Action. Я использовал aws api gateway для выполнения url для достижения лямбды. Я могу успешно обработать намерения помощника Google с помощью приведенного ниже кода: -

const {smarthome} = require('actions-on-google');
const app = smarthome();

app.onExecute((body, headers) => {
  return {
    requestId: 'ff36...',
    payload: {
      // ...
    },
  };
});

app.onQuery((body, headers) => {
  return {
    requestId: 'ff36...',
    payload: {
      // ...
    },
  };
});

app.onSync((body, headers) => {
  console.log("body: "+JSON.stringify(body));
  console.log("headers: "+JSON.stringify(headers));
  return {
    requestId: 'ff36...',
    payload: {
      // ...
    },
  };
});

exports.handler = app;

На жестком коде устройства подробности в этой функции, он может успешно отражаться в приложении Google Home. Но для получения реальных устройств пользователя мне нужно получить токен oauth из намерения "SYN C". Но все, что я получил из этого кода, это: : "5604033533610827657"}

headers: {}

В отличие от умения "Discover Directive" умения Alexa, которое содержит токен в request.directive.endpoint.scope.token, намерение Google не делает кажется, нести его. Для O Auth я использую AWS Cognito, который отлично работает со связыванием учетной записи Alexa, а также для Google Home также может успешно связать учетную запись и показывать устройства, которые я жестко кодирую в лямбда-функции.

Согласно этот ответ, токен находится в

headers.authorization.substr (7)

Я пробовал это и ничего не получил.

"Не удается прочитать свойство 'substr' из неопределенного".

1 Ответ

1 голос
/ 27 января 2020

Лямбда-обработчик в клиентской библиотеке Actions on Google предполагает, что заголовки запроса присутствуют в event.headers в параметре input event интеграции Lambda Proxy Integration. Если у вас есть пользовательская интеграция Lambda или иным образом изменено отображение ввода, вам может понадобиться отредактировать шаблон отображения , чтобы обеспечить размещение заголовков там, где ожидает клиентская библиотека.

...