#google-api #gmail-api
#google-api #gmail-api
Вопрос:
Я использую push-уведомления Gmail для обработки электронной почты. Когда я получаю уведомление о сообщении от Google, я использую API списка истории с ранее сохраненными historyId
и могу просматривать новые сообщения с помощью messagesAdded. После получения сообщений я сохраняю последний идентификатор истории для следующего запроса.
При тестировании, если я отправляю два почтовых сообщения (с интервалом около 30 секунд) в просматриваемый почтовый ящик, я вижу два уведомления о сообщениях от Google, и когда я вызываю API истории для каждого из уведомлений, я вижу идентификаторы сообщений. Все это хорошо.
Если я повторяю тот же тест, но отправляю два почтовых сообщения сразу друг за другом, я получаю два уведомления от Google, но когда я вызываю history API для первого сообщения, я получаю два идентификатора сообщений в этом вызове history API. Когда я вызываю вызов API истории для второго уведомления, я получаю дубликат последнего идентификатора сообщения.
Как я могу предотвратить просмотр повторяющихся идентификаторов сообщений в этом сценарии? Любая помощь или указания будут высоко оценены.
Обновлено: Добавлен пример запроса и ответа для второго теста.
Комментарии:
1. Не могли бы вы поделиться с сообществом примером ответа, который вы получаете в двух сценариях?
2. Я также наблюдал дублирующиеся идентификаторы сообщений. Я думаю, решение не в том, чтобы полагаться на идентификаторы сообщений.
Ответ №1:
Я заметил в ответе от API истории Google historyId
отображение последних сообщений, которые были обработаны. Если я сохраню это значение в качестве следующей начальной точки вместо historyId
отправленного в сообщении уведомления, это решит проблему дублирования, поскольку по второму запросу больше нет сообщений. Не уверен, что это правильный способ сделать это, поскольку это означает, что я не сохраняю и не использую historyId
отправленные в сообщении уведомления.