Outlook联系人文件夹订阅API问题及联系人分类订阅API咨询
是否存在订阅联系人分类资源的API?
微软Graph API支持对联系人文件夹(即你所说的联系人分类)及其下的联系人资源创建订阅。你可以通过/subscriptions端点创建针对/me/contactFolders/{contactFolderId}/contacts的订阅,接收该文件夹下联系人的创建、更新、删除通知。
解决创建/更新联系人收不到通知的问题
针对你遇到的通知接收失败问题,结合你提供的请求体,可从以下几点排查:
1. 修正过期时间格式
你的请求体中expirationDateTime字段格式不符合ISO 8601标准(正确格式为YYYY-MM-DDTHH:mm:ssZ),当前"2023-27-06T04:15:43Z"的日与月位置颠倒,需改为"2023-06-27T04:15:43Z"。格式错误会导致订阅创建异常,无法触发通知。
2. 验证notificationUrl有效性
订阅创建时,微软会向notificationUrl发送GET验证请求,要求返回请求中的validationToken参数值。若你的服务无法正确响应该验证步骤,订阅会处于无效状态,无法推送通知。
3. 检查权限配置
确保你的应用已获得对应权限:
- 委派权限:
Contacts.Read或Contacts.ReadWrite - 应用权限:
Contacts.Read.All或Contacts.ReadWrite.All
权限不足会导致订阅无法正常接收通知。
4. 确认订阅状态
调用GET /v1.0/subscriptions(或Beta端点)查看你创建的订阅是否存在,且status字段为active。若订阅状态异常,需重新创建有效订阅。
5. 排查Beta API订阅问题
若使用Beta API,需确保请求端点为https://graph.microsoft.com/beta/subscriptions,且资源路径/me/contactFolders/{contactFolderId}/contacts格式正确。Beta端点的订阅逻辑与v1.0基本一致,但需注意版本特性变化。
内容的提问来源于stack exchange,提问作者karthik

