You need to enable JavaScript to run this app. 使用Node.js、Graph及SSO的Office加载项如何调用SharePoint接口
优惠活动
大模型
产品
解决方案
定价
更多

使用Node.js、Graph及SSO的Office加载项如何调用SharePoint接口

Word SSO加载项对接SharePoint Graph API实操要点

模板代码中Graph调用的核心逻辑位置

你之前完成的SSO快速启动模板,已经把Graph调用的全流程做了固定封装,核心逻辑分布在三处:

  • 服务端路由层:所有对Graph API的请求都不会从前端任务窗格直接发出,统一由后端的/api/GraphData路由接口处理
  • 环境变量生效逻辑:模板后端会自动读取.env中的GRAPH_URL_SEGMENT、SCOPE配置,前者用来拼接完整的Graph请求路径,后者用来申请对应权限的访问令牌,不需要手动写配置读取代码
  • 触发链路:用户在任务窗格点击交互按钮后,前端会先通过Office.js的getAccessTokenAsync拿到SSO临时身份票据,将票据随请求发送给后端接口;后端收到票据后向Azure AD申请Graph访问令牌,再按照环境变量配置的路径发起实际请求,整个流程和你之前获取用户信息、拉取OneDrive数据的逻辑完全一致

迁移SharePoint列表接口的具体调整项

不需要从零重写调用逻辑,只需要针对现有封装做三类适配:

配置层调整

  • 将.env文件中的GRAPH_URL_SEGMENT值,替换为你在Graph Explorer中验证通过的SharePoint接口完整路径,例如拉取指定站点列表数据时可配置为sites/{站点ID}/lists/{列表ID}/items,路径需要和你在Graph Explorer跑通的地址完全匹配
  • 将.env中的SCOPE值替换为SharePoint接口对应的权限范围,例如Sites.Read.All,该值需要和你在Azure应用注册中配置的公开授权权限完全一致

代码层调整

  • 检查后端的令牌申请逻辑:模板默认使用.default权限集合申请令牌,需要确认申请令牌时传入的scope参数和你.env中配置的SCOPE值对齐,避免出现仍在申请User.Read基础权限的情况
  • 匹配Graph API版本:如果你在Graph Explorer中使用的是Beta版本接口,需要把后端请求的Graph根地址中的版本段从v1.0对应修改为beta,否则会出现404路径不存在的报错
  • 适配查询参数:如果SharePoint接口需要携带$select、$filter等查询参数,直接拼接到GRAPH_URL_SEGMENT值的末尾即可,后端封装逻辑会原样透传路径段,不会对参数做截断

前置校验项

  • 确认Azure AD中为加载项注册的应用,已经申请了对应SharePoint的API权限并完成管理员授权,否则代码逻辑完全正确的情况下也会出现403权限不足的报错
  • 不要直接照搬Graph Explorer的令牌逻辑:Graph Explorer使用的是用户个人授权令牌,而加载项走的是SSO的应用委托授权流程,两者的权限上下文并不通用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 18:36:03