You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure Function托管身份调用Microsoft Graph API获取工作表

问题解答

关于Get Worksheet API的应用权限支持问题

是的,你理解的没错:Get Worksheet操作不支持应用权限(Application Permission),所以无法直接通过Azure Function的托管身份调用这个API。Graph API文档中“Least privileged permissions”显示“Not supported”,意味着该接口仅支持委托权限(Delegated Permission)——即必须以某个具体用户的身份发起调用,而不能使用服务身份(如Azure Function托管身份这类无用户交互的服务主体)直接访问。

替代方案:用Azure Function托管身份读取Teams中Excel内容的可行路径

方案1:通过Graph DriveItem API获取文件二进制内容,本地解析

  • 给Azure Function的托管身份授予Files.Read.All应用权限(该权限允许服务身份访问Teams关联的SharePoint/OneDrive文件)
  • 定位目标Excel文件:
    1. 先通过团队ID调用GET /groups/{groupId}/drive获取团队默认文档库的Drive ID
    2. 再通过文件路径或名称找到对应的DriveItem ID
  • 调用GET /drives/{drive-id}/items/{item-id}/content获取Excel文件的二进制流
  • 在Function中使用EPPlus、NPOI等Excel处理库直接解析二进制内容

方案2:借助SharePoint REST API读取文件

Teams的文件实际存储在关联的SharePoint站点中,可直接调用SharePoint REST API:

  • 给托管身份授予Sites.Read.All应用权限
  • 通过团队ID获取对应的SharePoint站点:GET /groups/{groupId}/sites/root
  • 调用SharePoint API定位并获取文件内容,再用Excel库解析

方案3:低代码中间层(Logic Apps)

如果场景允许低代码实现,可使用Azure Logic Apps的Teams/Excel连接器,通过托管身份授权读取Excel内容后,再传递给Azure Function处理。此方案适合无需复杂自定义解析逻辑的场景。


内容的提问来源于stack exchange,提问作者DeMaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:48:21