使用Microsoft Graph API无用户访问方式时如何获取登录用户资料详情
报错翻译
你收到的错误提示/me request is only valid with delegated authentication flow中文含义为:/me请求仅在委托认证流中有效。
报错根因
你当前使用的「无用户获取访问权限」属于应用权限类的客户端凭证流,该认证流程全程不存在绑定的登录用户上下文。而/me端点的设计逻辑是直接映射当前已登录的委托用户身份,仅支持有用户参与登录的委托认证流调用,因此触发该错误。
解决方案
根据你的业务需求,可二选一处理:
- 若要继续使用无用户的应用权限流:将请求路径从
/me替换为指定用户标识的端点,格式为/users/{用户ID/用户主体名称(UPN)},示例请求如下:
请提前确认目标用户的ID或UPN,同时确保你的应用已被授予GET https://graph.microsoft.com/v1.0/users/xxx@yourdomain.comUser.Read.All这类应用级权限且管理员已完成同意。 - 若你的Windows应用本身面向终端登录用户使用:更换为适配桌面端的委托认证流(比如设备码流、公共客户端授权码流),获取带有委托权限的访问令牌后,即可正常调用
/me端点获取当前登录用户的资料。
内容的提问来源于stack exchange,提问作者Phpian
相关产品推荐
相关产品推荐

