本技能汇集在浏览器 SPA(无后端)中以委托 MSAL.js 认证对接 Microsoft Graph 的实战经验,强调用真实证据而非通用 API 建议。
用途:帮助开发者探测、构建和调试 Graph 集成,尤其是 Teams 聊天、频道线程、录制与转录场景。
主要能力与要点:
- 先探测再构建:用零构建工具的独立 HTML 文件做真实交互登录与原始 fetch,验证端点与返回结构,确认后再写应用代码;把管理员同意等待时间当作路线图硬门槛,记录负面结论避免重复踩坑。
- OData 查询怪癖:$top 在子端点可能被拒;$expand=replies 是内联线程回复的唯一方式;聊天消息日期无 $filter,需客户端分页过滤;@odata.nextLink 是绝对 URL;$count 支持不统一;资源 ID 形状需客户端校验。
- 权限与同意:按信任边界拆分应用注册,增量扩权;转录访问需 SharePoint 资源权限与独立令牌;对同意错误做指纹匹配并优雅降级,不重试循环。
- 录制与转录:/me/onlineMeetings 端点仅限组织者,改用遍历 /me/chats 消息读取 callRecordingEventMessageDetail;转录走 SharePoint REST v2.1,需单独 bearer token;跨租户返回 400 应作为类型化非错误;浅分页会静默丢数据,需深扫并标记截断。
- CSP:为纯浏览器 SPA 逐步构建 connect-src、frame-src 等,注意仅生产环境暴露的问题。
- 限流与重试:仅重试 429/502/503/504,遵守 Retry-After,指数退避加抖动,上限约 5 次,每次重试刷新令牌,使用有界并发池。
- MSAL 认证循环:记录从 CSP 误判到 iframe 静默 SSO 不可用、再到回调路由被拦截的完整排查序列,最终采用无 iframe 的顶层重定向登录。
适用场景:无后端 SPA 直接调用 Graph、Teams 数据聚合、录制转录检索、多租户部署。
限制:资料未提供具体安装命令、收费或平台支持信息;部分结论依赖特定租户与环境,需自行验证。