Паб / под-сообщения Google Cloud Platform не доставляются подписчику - PullRequest
0 голосов
/ 25 июня 2019

Я настраиваю push-уведомления для gmail на основе руководства, предоставленного google (https://developers.google.com/gmail/api/guides/push).. Я хочу, чтобы приложение моего узла регистрировало клиента с помощью .watch (), а затем получало электронные письма в указанной конечной точке, как описано в документации.

Я создал тему pub / sub, добавил gmail в качестве издателя, добавил подписчика и вызвал watch () в приложении моего узла. watch () возвращает соответствующий объект {historyId: xxxx, expiration: yyyy}, который, согласно документации Google, означает, что вызов выполнен успешно.

обработчик для получения уведомлений по электронной почте на сервер:

export const receiveGmailEmail: RequestHandler = async (req, res) => {
  log('Received update from google!');
  log(JSON.stringify(req.body, null, 2));
  return res.status(200);
}

Регистрация:

  const watchRes = await gmailClient.watch();
  log('====> Watch Response <=====');
  log(JSON.stringify(watchRes, null, 2));

Журнал сервера, который показывает, что он регистрируется правильно: ====> Смотреть ответ <===== { "historyId": "6560", «истечение срока»: «1562025255689» } </p>

Я никогда не получаю сообщения в конечной точке получения в моем приложении узла. Согласно журналам сервера, я никогда не получаю никакого запроса, когда сообщение публикуется. Проблема заключается в том, что мои сообщения не доставлены. На мониторе Stackdriver я подтвердил, что тема pub / sub публикует сообщения, когда я отправляю электронное письмо на адрес электронной почты, но если я просматриваю детали подписки в Stackdriver, он показывает все большее число недоставленных сообщений.

Есть мысли о том, почему сообщения в подписке остаются недоставленными?

1 Ответ

0 голосов
/ 29 июня 2019

Оказывается, это не проблема паба / юга Google.Amazon Cloudfront блокирует POST-запросы по умолчанию, поэтому мне пришлось изменить режим кэширования, чтобы включить POST-запросы.https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesAllowedHTTPMethods

...