Как отправить пользовательский http-код из обработчика намерений AoG на Express - PullRequest
0 голосов
/ 11 февраля 2019

Я реализовал действие помощника Google (AoG) с помощью клиентской библиотеки node.js (работает на платформе Express).Мое действие заключается в реализации привязки аккаунта OAuth.В какой-то момент я хочу отозвать доступ, вернув HTTP-код 401, как указано здесь: Неявное связывание учетной записи AOG - как выполнить сброс?

Я немного исследовал, как именно вернуть пользовательский статускод.Исходя из этой проблемы: https://github.com/actions-on-google/actions-on-google-nodejs/issues/156

Я реализовал промежуточное программное обеспечение, которое дает моим навыкам доступ к объекту ответа Express:

app.middleware((conv: any, framework: any) => {
  return new Promise(resolve => {
    if (framework.express) {
      conv.expressResObject = framework.express.response
    }
    resolve()
  })
})

Затем пытаюсь вызвать в моем обработчике намерений это:

    return new Promise((resolve, reject) => {
        const expressRes = conv.expressResObject
        expressRes.status(401).json({ error: 'user_not_found' })
        resolve()
    })

, что привело к ошибке:

Обнаружено отклонение от обещания!Необработанный отказ в: Обещание Ошибка: не удается установить заголовки после их отправки.

....
at standard.then.catch (...\node_modules\actions-on-google\dist\framework\express.js:38:38)

У кого-нибудь есть опыт отправки пользовательского заголовка из клиентской библиотеки AoG / обработчика намерений?

...