0

我的代码调用 OneNote API 将 SharePoint Online 网站 URL 解析为 SiteCollectionId 和 SiteId。我们得到一个不记名令牌,设置 HTTP auth 标头并发出 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"
}

但是,今天它决定在 10 个请求中大约有 9 个返回以下内容:

{
  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-ahttps://domain.com/sites/site-a。(SharePoint 支持在预览中。) “我不知道这是在预览中(我认为它是 GA),但无论如何它并没有解释为什么它间歇性地适用于完全相同的输入(相同的 URL 和不记名令牌)。

会不会只是 OneNote API 或 SharePoint API 中的一个错误,它必须在幕后调用?

4

1 回答 1

1

请参考博客 - http://blogs.msdn.com/b/onenotedev/archive/2015/06/11/and-sharepoint-makes-three.aspx

我们添加了 FromUrl 方法,因此您可以传入绝对网站 URL 并获取网站集和网站 ID。您应该仅在需要时进行此调用,然后存储值(网站集和网站 ID)以供将来在对 OneNote API 的请求中使用。

然而,这并不能回答间歇性。如果请求失败,请与我们分享 X-correlationId 标头,以便我们提供进一步帮助。

于 2016-02-07T20:51:50.800 回答