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

使用Graph API创建Microsoft ToDo任务订阅时遇禁止访问错误

使用Graph API创建订阅时的权限报错问题

令牌权限

Calendars.ReadWrite Contacts.ReadWrite Tasks.ReadWrite User.Read profile openid email

错误详情

{
  "error": {
    "code": "ExtensionError",
    "message": "Operation: Create; Exception: [Status Code: Forbidden; Reason: Access is denied to the requested resource. The user might not have enough permission.]",
    "innerError": {
        "date": "2022-11-30T08:23:03",
        "request-id": "0541655d-83f3-456e-af47-165caf259c76",
        "client-request-id": "0541655d-83f3-456e-af47-165caf259c76"
    }
  }
}

请求详情

请求URL

POST https://graph.microsoft.com/v1.0/subscriptions 

请求体

{
    "notificationUrl":"<development-url>/notifications/office365/graph/v1",
    "expirationDateTime":"2022-12-03T06:48:06Z",
    "resource":"/me/todo/lists/{taskListId}/tasks",
    "changeType":"created,updated,deleted",
    "clientState":"<client-state>"
}

基本信息

  • 使用接口:Microsoft Graph API v1.0 订阅创建接口
  • 受影响用户数:190人

排查与解决方向

  1. 校验任务列表ID的有效性
    确保请求体中{taskListId}是当前用户实际拥有的任务列表ID,可先调用GET /me/todo/lists接口确认列表存在且用户能正常访问。

  2. 确认权限类型与资源路径匹配

    • 针对/me路径的订阅只能使用委托权限,需确保用户已完成授权流程,令牌中的Tasks.ReadWrite是委托权限而非应用权限;
    • 若使用应用权限,需将资源路径替换为/users/{userId}/todo/lists/{taskListId}/tasks,并确保应用拥有对应的应用权限且已获取管理员同意。
  3. 验证通知URL的可访问性与验证逻辑
    Graph API会向notificationUrl发送验证请求,需确保该URL可被公网访问,且服务能正确返回微软发送的validationToken。验证失败可能导致权限类错误,需检查URL的路由处理逻辑。

  4. 检查Azure AD应用注册配置
    确认应用注册中已添加Tasks.ReadWrite委托权限,且针对多用户场景已完成管理员同意。同时核对应用的重定向URI、权限范围等配置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:20:34