我希望连接到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帐户
答案 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}
显然,如果您已经知道了可以直接进入最后一步的路径: - )