我正在尝试使用 Microsoft Graph 通过 JS 应用程序上的提取请求来访问 SharePoint 列表的项目。
当我提出以下请求时:
export const getList = access_token => {
const token = "Bearer " + access_token;
const url = `${apiUrl}/${siteId}/lists/${listId}`;
return fetch(url, {
method: "get",
headers: {
Authorization: token,
Accept: "application/json;odata.metadata=none"
}
}).then(res => res.json());
};
我得到的是一个有效的 JSON 响应,其中包含有关相关列表的详细信息。
但是,当我使用此请求时:
export const getItems = access_token => {
const url = `${apiUrl}/${siteId}/lists/${listId}/items`;
const token = "Bearer " + access_token;
return fetch(url, {
method: "get",
headers: {
Authorization: token,
Accept: "application/json;odata.metadata=none"
}
}).then(res => res.json());
};
我认为应该返回该列表中包含的项目,尽管列表不为空,但我得到了一个空数组的响应。
我可能应该补充一点,我正在使用以下 URL 来获取访问 token :
const tokenUrl = `https://login.microsoftonline.com/${siteURL}/oauth2/v2.0/token`
我错过了什么吗?
编辑:添加发出请求时收到的响应
获取带有 URL 的列表信息时:
const url = `${apiUrl}/${siteId}/lists/${listId}`;
响应是以下对象:
{
createdBy: {user: {…}}
createdDateTime: "2018-09-13T04:01:11Z"
description: ""
displayName: "Pessoa"
eTag ""70c738b2-d857-4431-a079-bcc0c60efbe4,16""
id: "70c738b2-d857-4431-a079-bcc0c60efbe4"
lastModifiedDateTime: "2018-09-13T04:08:47Z"
list: {contentTypesEnabled: false, hidden: false, template: "genericList"}
name: "Pessoa"
parentReference: {}
webUrl: "https://incubadorahabits.sharepoint.com/sites/PlataformaTecnologica/Lists/Pessoa"
}
尝试使用 URL 获取列表项时:
const url = `${apiUrl}/${siteId}/lists/${listId}/items`;
响应是:
{
value: []
}
最佳答案
https://graph.microsoft.com/beta/sites/{site-id}/lists/{list-id}/items endpoint
的
空结果通常意味着缺少所需的权限。 要查询 SharePoint 列表项,根据列表类型,需要指定以下权限范围:
- 对于 SharePoint 列表:
Sites.Read.All
或Sites.ReadWrite.All
- 对于 SharePoint 库:
Files.Read.All
或Files.ReadWrite.All
关于javascript - 从 Microsoft Graph API 请求列表项时收到空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52879691/