Я настраиваю 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, он показывает все большее число недоставленных сообщений.
Есть мысли о том, почему сообщения в подписке остаются недоставленными?