Неверный ответ history.list API Gmail после нового сообщения - PullRequest
0 голосов
/ 16 января 2020

Я вижу, что иногда history.list ответ не содержит записей истории, даже когда было обновление почтового ящика Gmail.

В моей настройке мое приложение подписано на просмотр обновлений Gmail для Метка «INBOX», чтобы при поступлении нового сообщения мы могли выполнить некоторую обработку.

После одного из сообщений Gmail отправил уведомление с новым historyId (значение 843968), и приложение, как обычно, создало вызов history.list с startHistoryId, установленным на предыдущий известный historyId, который был 843911. Но вызов вернул ответ без (или пустого) массива history. В результате приложение обновило внутренний historyId до нового значения и не обрабатывало вновь полученное сообщение, поскольку в ответе не было массива истории. При следующем уведомлении будет сделан вызов history.list с новым historyId (843968), и информация о ранее отправленном сообщении будет потеряна.

После того, как я заметил, что пришло сообщение, но мое приложение не обработало как и ожидалось, я вызвал history.list вручную с startHistoryId, установленным на 843911 (значение до того, как пришло сообщение), и он правильно вернул мне ответ с записью history и messagesAdded. Итак, может ли это произойти, что history.list может вернуть неполные данные, и мое приложение должно как-то обрабатывать такие случаи, чтобы предотвратить потерю обновлений почтового ящика, или это ошибка в API Gmail?

...