当前位置: 首页 > 知识库问答 >
问题:

MS 图形 API 从驱动器项访问工作簿

冉锋
2023-03-14

我写了一些代码,成功地访问了sharepoint网站上的excel电子表格。我通过在图形资源管理器中查找driveid,然后浏览以查找工作簿项和工作表来实现这一点。

现在我需要做同样的事情,但我无法使用 Graph 资源管理器查找驱动器 ID,因此我明白我可以使用 https://www.techmikael.com/2018/07/using-microsoft-graph-to-get-pdf.html 中所示的方法生成驱动器 ID

(附带说明,我的node.js版本的相同代码是在https://glitch.com/~ultra-sloop)

https://alphaindigo.sharepoint.com/:x:/r/_layouts/15/Doc.aspx?sourcedoc={1F4C6E80-0A55-4717-8D8D-19382F8E3C69}

https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE/驱动项目

当我在Graph Explorer中运行这个测试时,它给出了driveItem的详细信息,如下所示:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#shares('u%21aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE')/driveItem/$entity",
    "@microsoft.graph.downloadUrl": "https://alphaindigo.sharepoint.com/_layouts/15/download.aspx?UniqueId=1f4c6e80-0a55-4717-8d8d-19382f8e3c69&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvYWxwaGFpbmRpZ28uc2hhcmVwb2ludC5jb21AMGQ3NTY1NzUtMjgwOC00NmE1LWIyYmEtMDFlZTgzZmIwZTEzIiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTU2Mjg5MzAyNSIsImV4cCI6IjE1NjI4OTY2MjUiLCJlbmRwb2ludHVybCI6InNzeDk3QjhPRk1mTXVTS1NyK2M5dFpITWtsdi9yR1BUbWdEL2hnSlhDVTQ9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxMjIiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6Ik5qWTNPRFl4WTJNdE4yWXpNeTAwWTJFd0xUbGhaV1l0WkRnM05ERXpOV05sTW1GaSIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJORGM1TURWaE4yUXRObUl5TXkwME5EUTRMV0ZtWkdRdE5UVTJZamcwWlRNNFpUSmoiLCJhcHBfZGlzcGxheW5hbWUiOiJHcmFwaCBleHBsb3JlciIsInNpZ25pbl9zdGF0ZSI6IltcImttc2lcIl0iLCJhcHBpZCI6ImRlOGJjOGI1LWQ5ZjktNDhiMS1hOGFkLWI3NDhkYTcyNTA2NCIsInRpZCI6IjBkNzU2NTc1LTI4MDgtNDZhNS1iMmJhLTAxZWU4M2ZiMGUxMyIsInVwbiI6ImRvdWdAYWxwaGFpbmRpZ28ub25taWNyb3NvZnQuY29tIiwicHVpZCI6IjEwMDMyMDAwNDZDREY4QzQiLCJjYWNoZWtleSI6IjBoLmZ8bWVtYmVyc2hpcHwxMDAzMjAwMDQ2Y2RmOGM0QGxpdmUuY29tIiwic2NwIjoibXlmaWxlcy5yZWFkIGFsbGZpbGVzLnJlYWQgbXlmaWxlcy53cml0ZSBhbGxmaWxlcy53cml0ZSBhbGxzaXRlcy5yZWFkIGFsbHNpdGVzLndyaXRlIiwidHQiOiIyIiwidXNlUGVyc2lzdGVudENvb2tpZSI6bnVsbH0.L2t4YmRDQlpwS2dGMjIvdmxoVFA5ZXA0Qyt0b3VWWE9rb0h1UTJzcFVHRT0&ApiVersion=2.0",
    "createdDateTime": "2019-05-05T04:52:56Z",
    "eTag": "\"{1F4C6E80-0A55-4717-8D8D-19382F8E3C69},688\"",
    "id": "01FQPFGAEANZGB6VIKC5DY3DIZHAXY4PDJ",
    "lastModifiedDateTime": "2019-06-29T02:24:23Z",
    "name": "Buddies.xlsx",
    "webUrl": "https://alphaindigo.sharepoint.com/_layouts/15/Doc.aspx?sourcedoc=%7B1F4C6E80-0A55-4717-8D8D-19382F8E3C69%7D&file=Buddies.xlsx&action=default&mobileredirect=true",
    "cTag": "\"c:{1F4C6E80-0A55-4717-8D8D-19382F8E3C69},690\"",
    "size": 31938,
    "createdBy": {
    etc etc...

但是当我将/workbook/worksheet/file-name附加到末尾时

https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE/driveitem/workbook/worksheets(“工作表1”)/范围(地址=“A1:D4”)

我得到这个错误:

    "error": {
        "code": "InternalServerError",
        "message": "Unable to find target address",
        "innerError": {
            "request-id": "5bea4b7f-91d9-4ba6-a26f-7964a4122a0a",
            "date": "2019-07-12T00:36:16"
        }
    }
}

如果我从那里后退一步,使用以下命令删除工作表名称和范围:https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE/驱动项目/工作簿

我得到了同样的错误

已经列出了类似的问题,在使用Microsoft Graph API从Sharepoint站点拉取Excel.xlsx工作簿中得到了解答

但是因为我已经有了一个driveItem而不是listItem,所以它不能回答我的问题。

共有1个答案

甘骞尧
2023-03-14

一个工人:

json_response = GET("https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE/driveitem") 
drive_item = json_response["id"]
drive = json_response["parentReference"]["driveId"]
print(GET("https://graph.microsoft.com/v1.0/me/drives/{drive}/items/{drive_item}/workbook"))
 类似资料:
  • > 此页面上有三个示例URLhttps://developer.microsoft.com/en-us/graph/docs/concepts/onenote-get-content只有第一个有效。 图表。微软com/v1。0/me/onenote/notes/pages收到400个请求-找不到段“notes”的资源 图表。微软com/v1。0/me/onenote/页面?select=title

  • 我使用委托权限来获得访问令牌授权。用户是全局管理员 权限范围是offline_访问用户。读写。所有文件。读写。所有 我请求API获取相同的租户子用户驱动器文件 https://graph.microsoft.com/v1.0/users/xxx/drive/root/children 返回访问拒绝 https://graph.microsoft.com/v1.0/me/drive/root/chi

  • 当我使用graph explorer(https://developer.microsoft.com/en-us/graph/graph-explorer)调用graph API(如teams API)时,它会自动为我提供一个访问令牌,该令牌具有执行任务(如创建团队和添加人员)的权限和身份验证。

  • 我目前正在facebook上测试我的应用程序,试图访问我的账户地址。 在graph explorer中,它表示: 字段为空或被访问令牌禁止。 我检查了所有的访问权限,并在我的个人资料中输入了一个地址。 有什么建议吗? 电子邮件

  • 我正在尝试访问特定租户的用户OneDrive详细信息。我用过https://graph.microsoft.com/v1.0/users/{userid}/drives以获取驱动器详细信息。但它正在为在Azure目录中生成应用程序ID的管理员用户返回数据。 接下来,我需要迭代驱动器项(https://graph.microsoft.com/v1.0/users/{userId}/drives/{d

  • 我正在构建一个应用程序,该应用程序通过图形API连接到个人Microsoft帐户的OneDrive。我的目标是制作一个应用程序,我可以从中访问onDrive工作簿内容。 对于参考文档,我正在使用此文档:https://graph.microsoft.io/en-us/docs/api-reference/beta/resources/excel 在这里,我有两个问题: 问题1: https://g