调用Microsoft Graph API创建SharePoint List订阅遇400错误求助
问题描述
我正在将Microsoft Graph API与n8n Cloud集成,实现SharePoint列表更新的订阅功能。调用POST /v1.0/subscriptions接口时,尽管请求payload完全按照Graph文档要求编写,却始终返回400 InvalidRequest错误。
我的配置
- Graph API端点:
https://graph.microsoft.com/v1.0/subscriptions - 认证方式:Microsoft Graph OAuth2
- 站点ID:
a66e822f-bd3f-4a50-89fc-a1230ec1bde5 - 列表ID:
3fdfc287-aad4-4f2e-b071-cf50d122c193 - Webhook URL:
https://samurai2025.app.n8n.cloud/webhook/graph/intake-validate-v1(已通过curl验证可用性)
请求体
{ "changeType": "updated", "resource": "sites/a66e822f-bd3f-4a50-89fc-a1230ec1bde5/lists/3fdfc287-aad4-4f2e-b071-cf50d122c193", "notificationUrl": "https://samurai2025.app.n8n.cloud/webhook/graph/intake-validate-v1", "expirationDateTime": "2025-10-10T10:30:00Z", "clientState": "CS_9c0e9a9d770e4e7c_b6f6bfb9ffb4421e_5c", "latestSupportedTlsVersion": "v1_2" }
错误信息
{ "error": { "code": "InvalidRequest", "message": "Could not process subscription creation payload. Are all property names spelled and camelCased properly? Also are the dateTimeOffset properties in a valid Internet Date and Time format?" } }
已排查项
- 已通过
GET .../sites/{siteId}/lists/{listId}验证站点和列表的存在性与可访问性 - Webhook URL已通过Graph的挑战验证
expirationDateTime采用ISO UTC格式,且有效期在72小时内- 请求头的Content-Type已设置为application/json
- 尝试过最小化payload(仅保留必填字段)和完整payload,结果一致
疑问与求助
创建SharePoint列表订阅是否有额外要求?比如:
- 委托权限与应用权限的区别是否会影响订阅创建?
- 资源字符串是否有其他格式要求?
- 是否缺失
Sites.Read.All/Sites.Manage.All这类权限范围?
内容的提问来源于stack exchange,提问作者Shadi Azzam
相关产品推荐
相关产品推荐

