График Delta API для групп, возвращающих 400 «Ресурс не найден для сегмента« контакты »». - PullRequest
0 голосов
/ 01 марта 2019

Я разрабатываю интеграцию с Azure Ad, которая поддерживает пошаговую синхронизацию пользователей и групп.Он работал нормально в течение достаточно долгого времени, но недавно некоторые (не все) из моих клиентов начали сталкиваться с одной конкретной ошибкой.Для запроса типа:

GET https://graph.microsoft.com/v1.0/groups/delta?$skiptoken=<TOKEN_FROM_PREVIOUS_SYNCRHONISATION>

API возвращает ответ с кодом состояния 400 и телом:

   "error": {
    "code": "BadRequest",
    "message": "Resource not found for the segment 'contacts'.",
    "innerError": {
      "request-id": "<SOME-REQUEST-ID>",
      "date": "2019-02-27T20:01:16"
    }
  }

Я хочу указать, что эта ошибка возникает для некоторых конкретных клиентов, и яне смог воспроизвести его в моем окружении.Может ли кто-нибудь дать мне подсказку или два, что может быть причиной этой ошибки?

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

У меня точно такая же проблема, когда я отправляю запрос на следующую конечную точку

GET https://graph.microsoft.com/v1.0/groups/delta?$select=id,displayName,description&$expand=members

Однако, это работает, если я удаляю параметр "$ expand = members" из URI.Может ли это быть причиной твоего случая?

0 голосов
/ 15 марта 2019

Через пару дней мои клиенты перестали поднимать проблему, поэтому я считаю, что проблема была временной и на стороне Azure.

0 голосов
/ 02 марта 2019

Убедитесь, что вы правильно используете пропускающие токены и дельта-токены.

У вас должен быть пропущенный токен, только когда вы получите следующую страницу дельта-ответа.

Позже, когда вы хотите получить изменения, вы должны использовать дельта-токен.Так что $ deltaToken вместо $ skipToken.

Как и дельта-ссылка здесь: https://docs.microsoft.com/en-us/graph/delta-query-events?view=graph-rest-1.0#sample-third-and-final-response

...