我的代码调用 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-a和https://domain.com/sites/site-a。(SharePoint 支持在预览中。) “我不知道这是在预览中(我认为它是 GA),但无论如何它并没有解释为什么它间歇性地适用于完全相同的输入(相同的 URL 和不记名令牌)。
会不会只是 OneNote API 或 SharePoint API 中的一个错误,它必须在幕后调用?