首页 文章

访问Excel工作簿将返回“无法找到资源” .

提问于
浏览
2

我正在寻找连接到Microsoft Graph API并与我的OneDrive上的小型Excel工作簿进行交互 .

我能够通过Graph API成功授权和连接到OneDrive,查询我的个人OneDrive内容,我甚至可以找到.xlsx工作簿并获取其ID . 对此 endpoints 的 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"

但是,通过图形API调用连接到此"transactions.xlsx"工作簿似乎在我的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"
    }
  }
}

关于允许我的OneDrive查询通过但是Excel查询声明 item not found 的Graph API调用,我缺少什么?

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

2 回答

  • 0

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

  • 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}
    

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

相关问题