我正在设置一个应用程序,用于通过 Microsoft Graph API 修改 Microsoft Teams 帐户(团队/ channel ),但我无法从我需要调用的所有端点获得响应。 我已按照 guide 创建具有应用程序权限的应用程序并成功获取访问(和刷新) token 。
调用 https://graph.microsoft.com/v1.0/users/<user guid>/joinedTeams
endpoint 会产生如下响应:
{
"error": {
"code": "Unauthorized",
"message": "Unauthorized",
"innerError": {
"date": "2020-06-24T12:37:53",
"request-id": <guid>
}
}
}
在调用诸如 https://graph.microsoft.com/v1.0/users
之类的端点时,可以使用 as described 。应用程序似乎尚未获得访问这些内容的同意和/或权限,但注册后,它们会列在 azure 门户企业应用程序页面的 API 权限中,并且访问 token JWT 包含指定的权限作为 roles
对象.
来自智威汤逊:
"roles": [
"TeamSettings.ReadWrite.All",
"User.ReadWrite.All",
"Directory.ReadWrite.All",
"Group.ReadWrite.All",
"TeamMember.ReadWrite.All",
"Team.ReadBasic.All",
"GroupMember.ReadWrite.All",
"Member.Read.Hidden"
]
我尝试过使用 Directory.ReadWrite.All
权限以及 permissions page 上列出的 /joinedTeams
端点的完整权限列表,它们都会引发相同的错误。
奇怪的是,根据 this,对于过期(或类似无效)的 token ,将会给出 401 - Unauthorized 响应,但显然情况并非如此,因为我可以用该响应调用其他端点 token 。
我错过了什么?
最佳答案
感谢@MikeOliver 解决了 当我注册 Teams 时,它创建了另一个目录。只有第二个目录具有 Teams“许可证”(从 Azure 门户的许可证页面可见)。
关于azure - 从 Microsoft Graph 请求 '/joinedTeams' 时出现“未经授权”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62555955/