javascript - 从 Microsoft Graph API 请求列表项时收到空数组

标签 javascript sharepoint microsoft-graph-api

我正在尝试使用 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.AllSites.ReadWrite.All
  • 对于 SharePoint :Files.Read.AllFiles.ReadWrite.All

关于javascript - 从 Microsoft Graph API 请求列表项时收到空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52879691/

相关文章:

javascript - 在文本框中粘贴某些文本时是否检查数字(没有设置超时)

javascript - ExtJS MVC : should controllers be specified within requires for application?

javascript - 使用 Microsoft Graph 和 OneDrive JS SDK 获取共享 OneDrive 文档

microsoft-graph-api - 图形 API : Listing the Active SAML signing certificates

timezone - 将 microsoft graph 时区映射到时刻

java - Java 7 下的 Nashorn

javascript - Kendo 网格 - 如何通过 UP/DOWN 键盘键使整行选择可导航?

javascript - 在 excel 中打开 Excel 文件 url(来自源,不是下载的副本)

sharepoint - 在 sharepoint 设计器的工作流编辑器中,如何获取工作流发起者的用户名?

angularjs - SharePoint 列表上的 CRUD 与 Angular $resource