MS Graph API 从 DriveItem 访问工作簿

2024-01-31

我编写了一些代码,可以成功访问共享点网站上的 Excel 电子表格。我通过在图形资源管理器中查找驱动器ID,然后浏览查找工作簿项目和工作表来完成此操作。

现在我需要做同样的事情,但我无法使用 Graph Explorer 来查找驱动器 ID,因此我知道我可以使用以下所示的方法生成驱动器 IDhttps://www.techmikael.com/2018/07/using-microsoft-graph-to-get-pdf.html https://www.techmikael.com/2018/07/using-microsoft-graph-to-get-pdf.html

(旁注,我的node.js版本的相同代码位于https://glitch.com/~ultra-sloop https://glitch.com/~ultra-sloop )

从这个网址:

我生成了这个。

https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3L TheEOEQtMTkzODJGOEUzQzY5JTdE/driveitem https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE/driveitem

当我在 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!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3L TheEOEQtMTkzODJGOEUzQzY5JTdE/driveitem/工作簿/工作表 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!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3L TheEOEQtMTkzODJGOEUzQzY5JTdE/驱动器项目/工作簿 https://graph.microsoft.com/v1.0/shares/u!aHR0cHM6Ly9hbHBoYWluZGlnby5zaGFyZXBvaW50LmNvbS86eDovci9fbGF5b3V0cy8xNS9Eb2MuYXNweD9zb3VyY2Vkb2M9JTdCMUY0QzZFODAtMEE1NS00NzE3LThEOEQtMTkzODJGOEUzQzY5JTdE/driveitem/workbook

我犯了同样的错误

类似的问题已经列出,答案为使用 Microsoft Graph API 从 Sharepoint 站点提取 Excel.xlsx 工作簿 https://stackoverflow.com/questions/55618008/pulling-excel-xlsx-workbook-from-sharepoint-site-using-microsoft-graph-api?newreg=671c05f723564fe6aea45d659e7357f4

但由于我已经有一个driveItem而不是一个listItem,它不能回答我的问题。


解决方法:

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"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MS Graph API 从 DriveItem 访问工作簿 的相关文章

  • Redis 客户端忽略其上设置的配置选项并尝试连接到默认 IP 127.0.01

    在AWS中 我使用ElastiCache Redis服务器并使用节点作为后端和 promise redis 包 这就是我尝试连接到我的 redis 服务器端点的方法 client redis createClient host my red
  • 如何在 PyV8 中加载 Nodejs 模块?

    如何在 PyV8 中加载 Nodejs 模块 我读过所有关于 jsdom 在与 Nodejs 一起运行时有多么出色的内容 如果我在 Python 应用程序中运行 v8 使用 python 获取 Web 资源 然后将生成的 html 字符串提
  • 无法在我的抓取工具中设置超时选项以防止无限循环

    我已经使用 IE 在 vba 中编写了一个脚本 在其搜索框中的网页中启动搜索 通过点击搜索按钮根据搜索填充结果 网页加载它是searchbox几秒钟后它就会打开 但是 我的下面的脚本可以处理这个障碍并以正确的方式执行搜索 现在 我有一个稍微
  • Excel 工作簿 - 从 C# 读取速度非常慢?

    正在尝试读取 Excel 工作簿 发现读取 3560 行 7 列的工作表需要很长时间 大约需要 1 分 17 秒 我所做的就是循环遍历整个工作表并将值存储在列表中 这是正常现象 还是我做错了什么 static void Main strin
  • Sequelize.js - “不关联到”

    我在从数据库获取完整数据时遇到一些问题 那是我的模型 User module exports function sequelize DataTypes return sequelize define user id type DataTyp
  • Nextjs 无法在生产环境中的“.next”目录中找到有效的构建

    我正在 docker 中运行我的应用程序 但我的生产构建和启动脚本仅在 docker 环境中失败 虽然node env开发在docker环境下运行良好 这是我的脚本 无法进行生产构建并启动服务器 我正在使用nodemon和babel bui
  • 如何在nodejs缓冲区中存储整数?

    节点jsBuffer http nodejs org docs v0 4 12 api buffers html是相当膨胀 然而 它似乎适合存储字符串 构造函数采用字符串 字节数组或要分配的字节大小 我使用的是 Node js 0 4 12
  • 如何使用 Karma 测试 NodeJS 后端代码(testaulous)

    如何设置 Karma 来运行我的后端单元测试 用 Mocha 编写 如果我将后端测试脚本添加到files 它未能说明require未定义 你不知道 Karma 仅用于测试基于浏览器的代码 如果您的项目在后端有 mocha 测试 在前端有 k
  • Excel FILTER() 对于空白单元格返回 0

    我怀疑以前有人问过这个问题 但我找不到 FILTER 即使指定了返回字符串 通常也会为空白行返回 0 Using filter 我经常收到空单元格的 0 返回值 假设 A 列中有 6 行数据 abc xyz abc xyz abc If I
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本
  • 获取对象数组中每个嵌套对象的虚拟属性?

    所以我知道如何获取单个虚拟属性 如 Mongoose 文档中所述 PersonSchema virtual name full get function return this name first this name last 但如果我的
  • 如何在 Google Translate Node.js 代码中设置 API KEY

    我正在尝试创建一个使用 Google Translate API 的 Node js 代码 我从以下代码中得到了谷歌文档 https cloud google com translate docs translating text 但是当我
  • SQL Server,插入 Excel“链接服务器”时出现“无效列名”错误

    我有一个简单的 Excel 电子表格文档 运行 Office 2013 我使用 Microsoft Office 15 0 Access 数据库引擎 OLE DB 提供程序 将其用作数据库 我可以使用 MS SQL Server Manag
  • 我可以获取VBA代码中的注释文本吗

    可以说我有以下内容 Public Sub Information TEST End Sub 有没有办法得到 TEST 结果 不知何故通过VBA 例如 在 PHP 中 有一个获取注释的好方法 这里有什么想法吗 编辑 应该有办法 因为像 MZ
  • 如何在Power Query中对N列求和

    我的数据每月都会更新 因此我尝试创建一个强大的查询表 该表将显示我创建的枢转 N 列的总和 但我似乎不知道如何在强大的查询中执行此操作 我目前有这个代码 旋转后 创建要求和的列的列表 添加索引列以限制每行 添加一列 该列对该行的列进行求和
  • 在Excel中,我可以使用超链接来运行vba宏吗?

    我有一个包含多行数据的电子表格 我希望能够单击一个单元格 该单元格将使用该行中的数据运行宏 由于行数总是在变化 我认为每行的超链接可能是最好的方法 ROW MeterID Lat Long ReadX ReadY ReadZ CoeffA
  • Mongoose 独特的验证不起作用。保存重复条目

    我正在开发一个 NodeJS 应用程序 其中express是框架 MongoDB是数据库 我正在使用猫鼬插件 我有一个父母模型 我已经添加了独特 真实到场 mobile 但是每当我添加相同的手机号码时 唯一性验证就会失败 除了保存重复的文档
  • 使用输入作为显示日期的基础

    我需要一种方法来使用用户窗体上的输入来确定将在输出上显示的日期 这是我的代码 If StatusBox Value lt 23 59 And ShiftCode Value AP Then Cells emptyRow 8 Value Da
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll
  • 如何处理 MongoDB 的断开连接错误

    我在 Node js 进程中看到了这个未捕获的异常 Uncaught exception Error read ETIMEDOUT at TCP onStreamRead internal stream base commons js 16

随机推荐