使用Microsoft Graph API创建线上会议返回ResourceNotFound用户不存在错误
Microsoft Graph API 创建线上会议
User not found 报错解决方案 完整报错信息如下:
{ "error": { "code": "ResourceNotFound", "message": "User not found", "innerError": { "date": "2021-09-01T17:54:57", "request-id": "fa773652-e824-4c9e-af05-085e249fb489", "client-request-id": "fa773652-e824-4c9e-af05-085e249fb489" } } }
错误根本原因
该报错表示Microsoft Graph服务无法定位你请求中指定的操作用户主体,常见触发原因如下:
- 请求路径用户标识错误:调用
/users/{user-id}/onlineMeetings接口时传入的用户ID、用户主体名称(UPN)拼写错误或不存在;若你使用的是应用权限(而非用户委托权限),错误使用/me路径也会触发该报错,/me仅在委托权限场景下代表当前登录用户,应用权限场景无当前登录用户概念,/me指向无效用户。 - 权限范围与租户不匹配:你申请的Graph权限仅适用于当前租户,若操作用户属于其他租户、或是当前租户内未同步属性的外部来宾用户,会导致服务无法检索到对应用户。
- 令牌属性不合法:获取的访问令牌受众不是
https://graph.microsoft.com,或是令牌所属租户与操作用户所属租户不一致,也会导致服务无法识别用户身份。
排查步骤
- 校验请求路径:确认你使用的权限类型与路径匹配,应用权限必须使用
/users/{用户标识}路径,禁止使用/me;委托权限场景下确认当前登录用户是租户内有效用户,再使用/me路径。 - 校验用户标识有效性:先调用
GET https://graph.microsoft.com/v1.0/users/{你填入的用户标识}接口,若该接口也返回相同报错,说明你传入的用户标识确实不存在于当前租户,需要修正。 - 校验令牌合法性:将你获取的访问令牌放到JWT解析工具中校验:
- 检查
aud声明是否为https://graph.microsoft.com - 检查
tid声明对应的租户ID是否与操作用户所属租户一致 - 检查
scp(委托权限)或roles(应用权限)声明中是否包含OnlineMeetings.ReadWrite、OnlineMeetings.ReadWrite.All等创建线上会议所需的权限
- 检查
- 校验用户状态:进入Azure AD用户管理页面,确认目标用户处于启用状态,未被禁用或软删除;若操作用户是来宾用户,确认填入的UPN包含正确的
#EXT#后缀。
修复方案
- 路径错误修复:应用权限场景下将
/me替换为/users/{目标用户完整UPN/对象ID},示例路径:/users/zhangsan@contoso.onmicrosoft.com/onlineMeetings。 - 用户标识错误修复:直接从Azure AD用户详情页复制用户的对象ID或UPN填入请求,避免手动拼写出错。
- 令牌错误修复:重新申请正确受众、正确租户、包含所需权限的访问令牌,应用权限需要租户管理员全局授予同意后才会生效。
- 跨租户场景修复:若你使用多租户应用操作其他租户用户,需要先让目标租户的管理员完成应用权限同意,再获取对应租户的访问令牌发起请求。
内容的提问来源于stack exchange,提问作者Akash Gupta
相关产品推荐
相关产品推荐

