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

#microsoft-graph-api #microsoft-graph-mail

#microsoft-graph-api #microsoft-graph-mail

Вопрос:

Итак, токен пропуска, который я получаю из graph API, представляет собой число, основанное на моем понимании (я могу ошибаться), оно указывает, сколько электронных писем нужно пропустить.

В нашем приложении мы сохраняем этот токен пропуска в нашей базе данных / памяти, чтобы мы могли получать следующую страницу электронных писем. Итак, если, скажем, текущий токен пропуска пользователя равен 100, и прежде чем мы отправим запрос на сервер с токеном пропуска 100, этот пользователь удалит 10 электронных писем, то что произойдет, если все еще использовать этот токен пропуска 100?

Поскольку я не уверен, как справиться с такого рода случаями удаления пользователем электронных писем, способ работы нашего приложения таков: мы всегда ставим минус токену пропуска (например, -10) и проверяем, можем ли мы найти какое-либо совпадение электронной почты или метки времени между текущим ответом и предыдущим ответом, если совпадения нет, мы делаем еще один минус токену пропуска. Это вроде как идти назад. Мы прекращаем делать минус, пока не сможем найти перекрытие.

Имеет ли это смысл? До сих пор я заметил, что в ответах некоторых токенов пропуска nextLink указывается как null, пока во входящих сообщениях пользователя все еще есть новые электронные письма. Кроме того, мы пропустили пару электронных писем примерно за полгода (это означает, что электронное письмо находится в папке «Входящие» пользователя, но не извлекается нашим приложением).

Ответ №1:

API дельта-запроса (отслеживание изменений) может лучше подойти для ваших нужд. Это эффективно позволяет вам сохранять «закладку» в журнале изменений чьего-либо почтового ящика.

Например. Вместо сохранения токена пропуска вы бы сохранили deltaLink, который вы получаете после повторного вызова /messages/delta . При повторном вызове API с помощью deltaLink вы получите набор изменений с момента последнего вызова API новую deltaLink. Это позволяет вам «синхронизироваться» с изменениями, происходящими в папке «Входящие», которую вы отслеживаете.

Справочные документы по API находятся здесь: https://learn.microsoft.com/en-us/graph/delta-query-overview

Комментарии:

1. Спасибо за ваш ответ! Дельта-ссылка звучит круто. Но знаете ли вы, есть ли способ преобразовать наш текущий токен пропуска в delta link? Таким образом, мы можем выполнить плавный переход на delta link.

2. Нет, я не верю, что это возможно. DeltaLinks и токены пропуска следует рассматривать как непрозрачные, поэтому я не думаю, что есть способ преобразовать их, извините. Я могу ошибаться в этом.