403 错误 "Not Authorized to access this resource/api" Google Web 应用程序中的 Admin SDK 即使是管理员

403 error "Not Authorized to access this resource/api" Google Admin SDK in web app even being admin

两天前我一直在努力寻找问题,但我不知道为什么我现在会收到此错误,即使该应用程序在一个月前已完全正常运行。

在 Web 应用完成的任务中,它会调用 Admin SDK API 来获取群组成员列表。该应用程序具有范围 https://www.googleapis.com/auth/admin.directory.group.readonly,但我收到 403 错误 "Not Authorized to access this resource/api"(我验证了 Admin SDK API 已在 Google 的控制台中启用)。 顺便说一句,该应用程序之前向 Google 教室 API 发出请求没有问题。

这里最令人难以置信的是,应用程序机密是由管理员帐户生成的。当我使用相同的管理员帐户登录应用程序时出现此错误。但是,当我使用文档 (https://developers.google.com/admin-sdk/directory/v1/reference/members/list#response) 进行测试时,我得到了一个 200 的响应,并且在完全相同的授权范围内没有问题。

之前使用此管理员帐户获取成员列表没有问题。据我所知,从那以后,源代码或配置没有任何变化。所以我认为这个问题可能在某种程度上与客户端机密有关,但我不知道如何。

此网络应用仅供此管理员帐户使用

在我对 Whosebug 的研究中,我发现大多数事情都在谈论 "Google Apps Domain-Wide Delegation of Authority" (https://developers.google.com/admin-sdk/directory/v1/guides/delegation),但我以前从未使用过它。我想避免这种情况。

您是否知道为什么我使用网络应用程序时会收到此 403 错误,即使它在仅测试文档中的请求时有效并且我使用的是超级管理员帐户?

编辑:我现在已经根据这个要点 https://gist.github.com/MeLight/1f4517560a9761317d13ebb2cdc670d3 使用 "Google Apps Domain-Wide Delegation of Authority" 测试了一个简单的代码片段,并且该代码片段单独工作。 但是,在我的应用程序中使用它时,我仍然收到 403 错误。我快疯了,可能是什么权限问题?

终于,在我的头撞墙后,我发现了问题所在: 用于获取组 https://www.googleapis.com/admin/directory/v1/groups/groupKey/members 成员的 groupKey 有一个 尾随空格

是的,就是这样。我只需要去掉代码中的字符串(Python 中的一行),一切顺利。

我所做的一切,搜索权限/客户端 ID/权力委派似乎是疯了。

说真的,Google 的 API 的 403 错误“未授权访问此 resource/api”可能更明确。