访问Excel工作簿返回"找不到资源。"

时间:2017-12-13 15:27:12

标签: excel microsoft-graph

我希望连接到Microsoft Graph API并与OneDrive上的小型Excel工作簿进行交互。

我能够成功授权&通过Graph API连接到OneDrive,查询我的个人OneDrive内容,我甚至可以找到.xlsx工作簿并获取其ID。对此端点的GET请求成功:

https://graph.microsoft.com/v1.0/me/drive/recent

对上述GET请求的响应包括(省略了一些数据):

{createdDateTime: "2017-12-13T04:24:57Z", lastModifiedDateTime: "2017-12-13T04:26:09Z"}
id:"{id}"
name:"transactions.xlsx"

然而,连接到这个" transactions.xlsx"通过图形API调用的工作簿似乎在我的Web应用程序中很难。例如,GET请求:

https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/worksheets('Sheet1')/usedRange

通过Graph Explorer成功返回工作簿数据。但仅仅复制+粘贴API调用到我的应用程序然后失败:

{
  "error": {
    "code": "itemNotFound",
    "message": "The resource could not be found.",
    "innerError": {
      "request-id": "7716493f-cc32-413e-b4fa-5855df7ad181",
      "date": "2017-12-13T14:54:43"
    }
  }
}

我错过了哪些Graph API调用允许我的OneDrive查询通过,但Excel查询要声明item not found

这是一个商业Microsoft Graph / O365帐户

2 个答案:

答案 0 :(得分:0)

您是否可以尝试使用Excel REST的一个入门项目来查看是否可以获得所需的结果? https://github.com/microsoftgraph?utf8=%E2%9C%93&q=excelstarter

答案 1 :(得分:0)

您为GET /me/drive/recent显示的回复非常有限。您的结果中是否有remoteItem条目?

如果是这种情况,您需要使用其他URL来获取transaction.xlsx文件。

GET /drives/{remoteItem-driveId}/items/{remoteItem-id}

来自:https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/drive_recent#remarks

如果不是这种情况,您还可以使用以下请求查找文件夹结构:

GET /me/drive/root/children

使用上述查询的结果,您可以使用它来检索文件夹的内容:

GET /me/drive/items/{item-id}/children

知道确切位置后,您可以使用以下内容检索工作簿:

GET /me/drive/root:/{item-path}

显然,如果您已经知道了可以直接进入最后一步的路径: - )