Я вижу, что иногда 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?