API OneNote периодически возвращает HTTP 400 при запросе O365 SharePoint SiteId

Мой код вызывает API OneNote для преобразования URL-адреса сайта SharePoint Online в SiteCollectionId и SiteId. Мы получаем токен-носитель, устанавливаем HTTP-заголовок аутентификации и отправляем GET-запрос на:

https://www.onenote.com/api/v1.0/myorganization/sitecollections/FromUrl(url='https://mytenantxyz.sharepoint.com/sites/copynotesite')

Примерно неделю он возвращал ожидаемый ответ, похожий на:

{
  "@odata.context": "https://www.onenote.com:576/api/v1.0/$metadata#Microsoft.OneNote.Api.SiteMetadata",
  "siteCollectionId": "111e03ac-468c-4a28-9aab-543098ef49bb",
  "siteId": "555d72a0-f82f-4e4c-ae8a-17ef0ea04f32"
}

Однако сегодня он решил вернуть следующее примерно в 9 из 10 запросов:

{
  error":  {
     "code" : “20158”,
     "message": "Unable to get SiteMetadta for the url specified in the request.",
    "@api.url": "http://aka.ms/onenote-errors#C20158"
    }
}

В документации Microsoft (ссылка) ошибка 20158 объясняется следующим образом:
"Невозможно получить метаданные для URL-адреса сайта, указанного в запросе. Проверьте формат предоставленного URL-адреса. Поддерживаемые форматы включают https://domain.sharepoint.com/site-a и https://domain.com/sites/site-a. (Поддержка SharePoint находится в предварительной версии.)" Я не знал, что это была предварительная версия (я думал, что это GA), но в любом случае это не так. не объясняет, почему он периодически работает для одного и того же ввода (тот же URL-адрес и токен носителя).

Может быть, это просто ошибка в API OneNote или API SharePoint, которую он должен вызывать скрытно?


person Rob Potter    schedule 05.02.2016    source источник
comment
Не могли бы вы предоставить нам значение HTTP-заголовка X-CorrelationId для одного из запросов, завершившихся ошибкой с кодом 400?   -  person Jorge Aguirre    schedule 05.02.2016
comment
На данный момент сбои прекратились - подозреваю, что в API могло быть выполнено обновление программного обеспечения, которое оставило его неработающим примерно на 24 часа. Сейчас мы фиксируем заголовки X-CorrelationId в наших журналах ошибок, поэтому мы можем исследовать/расширить, если это произойдет снова.   -  person Rob Potter    schedule 10.02.2016
comment
Просматривая наши журналы трассировки, я вижу, что это все еще происходит, но реже, чем раньше. Вот пример X-CorrelationId: 16504d70-a8ff-48af-a59b-e50e61a97f14.   -  person Rob Potter    schedule 12.02.2016


Ответы (1)


Пожалуйста, обратитесь к блогу - http://blogs.msdn.com/b/onenotedev/archive/2015/06/11/and-sharepoint-makes-three.aspx

Мы добавили метод FromUrl, чтобы вы могли передать абсолютный URL-адрес сайта и получить семейство сайтов и идентификаторы сайтов. Этот вызов следует выполнять только при необходимости, а затем сохранять значения (семейство веб-сайтов и идентификаторы сайтов) для будущего использования в ваших запросах к API OneNote.

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

person Sharad Sharma    schedule 07.02.2016
comment
Спасибо за комментарий Шарад. Мы модифицировали наш код для хранения Site/SiteCollectionId, чтобы мы не делали вызов FromUrl так регулярно. Однако на самом деле это не отвечает на вопрос, а просто обеспечивает смягчение последствий. - person Rob Potter; 10.02.2016