在Graph Explorer调用Microsoft Teams Presence API遇认证错误:需Microsoft 365?
问题描述
尝试通过Graph Explorer调用Microsoft Graph API获取Microsoft Teams在线状态,调用接口为GET https://graph.microsoft.com/v1.0/me/presence,持续收到AuthenticationError,错误响应如下:
{ "error": { "code": "AuthenticationError", "message": "Error authenticating with resource", "innerError": { "date": "2024-11-11T11:17:17", "request-id": "2f867d6f-0d55-4ddc-b710-5cd4a20a30f1", "client-request-id": "4363c731-e866-2144-15f0-7567055f1160" } } }
已尝试的操作:
- 确认已使用Microsoft账号登录Graph Explorer;
- 在Graph Explorer中查看“修改权限”选项,但未找到
Presence.Read或Presence.Read.All权限; - 确认使用/v1.0端点,同时也尝试了/beta端点。
疑问:
- 在线状态数据是否仅支持Microsoft 365(工作或学校)账号访问?当前使用的是个人Microsoft账号。
- 若需Microsoft 365账号,需要哪些权限?这些权限是否需要管理员同意?
解答
是的,Teams在线状态数据仅支持Microsoft 365工作/学校账号访问,个人Microsoft账号(如outlook.com、hotmail.com)无法调用
/me/presence接口,这是API的权限范围限制导致的,个人账号不在该接口的支持范围内。针对Microsoft 365工作/学校账号,所需权限及要求如下:
- 获取自身在线状态:需要
Presence.Read权限,该权限属于用户同意权限,无需管理员同意,用户自行授权即可。 - 获取其他用户在线状态:需要
Presence.Read.All权限,该权限属于管理员同意权限,必须由租户管理员完成授权后才能使用。
- 获取自身在线状态:需要
另外,你在Graph Explorer中找不到对应权限的原因是当前登录的是个人账号,切换到Microsoft 365工作/学校账号后,就能在“修改权限”列表中看到Presence.Read和Presence.Read.All选项。
内容的提问来源于stack exchange,提问作者KannnanKrishnan
相关产品推荐
相关产品推荐

