我正在设置一个用于通过 Microsoft Graph API 修改 Microsoft Teams 帐户(团队/频道)的应用程序,但我无法从我需要调用的所有端点获得响应。
我已遵循guide https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow用于创建具有应用程序权限并成功获取访问(和刷新)令牌的应用程序。
呼叫https://graph.microsoft.com/v1.0/users/<user guid>/joinedTeams
产生如下响应:
{
"error": {
"code": "Unauthorized",
"message": "Unauthorized",
"innerError": {
"date": "2020-06-24T12:37:53",
"request-id": <guid>
}
}
}
在调用端点时,例如https://graph.microsoft.com/v1.0/users
works 。应用程序似乎尚未获得访问这些内容的同意和/或权限,但注册后,它们会列在 azure 门户企业应用程序页面的 API 权限中,并且访问令牌 JWT 包含指定的权限作为roles
object.
来自智威汤逊:
"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
权限以及上面列出的完整权限列表为了/joinedTeams
端点,它们都会引发相同的错误。
奇怪的是,根据this https://learn.microsoft.com/en-us/graph/resolve-auth-errors a 401 - 未经授权对于过期(或类似无效)的令牌将给出响应,但是显然情况并非如此,因为我可以使用该令牌调用其他端点。
我缺少什么?