Google api 如何在cron作业中通过OAuth2访问admin.directory.group?
我正在尝试(但失败)使用OAuth2通过命令行脚本调用admin.directory.group作用域。我尝试配置服务帐户以执行此操作,但收到以下错误消息: 调用GET时出错:(403)无权访问此资源/api 我还尝试使用一个“已安装”的应用程序类型,手动获取授权代码,随后获取一个刷新令牌,但得到了相同的Google api 如何在cron作业中通过OAuth2访问admin.directory.group?,google-api,google-admin-sdk,Google Api,Google Admin Sdk,我正在尝试(但失败)使用OAuth2通过命令行脚本调用admin.directory.group作用域。我尝试配置服务帐户以执行此操作,但收到以下错误消息: 调用GET时出错:(403)无权访问此资源/api 我还尝试使用一个“已安装”的应用程序类型,手动获取授权代码,随后获取一个刷新令牌,但得到了相同的未授权错误 我确实选中了“启用API访问”,并且在我的项目中启用了“AdminSDK”(尽管奇怪的是,它没有将Admin.directory.group列为AdminSDK的作用域之一) 我做错
未授权错误
我确实选中了“启用API访问”,并且在我的项目中启用了“AdminSDK”(尽管奇怪的是,它没有将Admin.directory.group
列为AdminSDK的作用域之一)
我做错了什么?您是否在管理控制台中添加了客户端ID以授予Admin SDK第三方客户端oauth访问权限
以下是关于如何为任务API执行此操作的说明:
它应该与Admin SDK类似,只是您必须将Admin SDK作为作用域我最终使用服务帐户实现了这一点。我确实必须按照建议授予第三方访问权限,但方式不同:
登录到管理控制台
安全->高级设置->身份验证->
管理第三方OAuth客户端访问
通过将客户机名称
设置为服务帐户的客户机ID,并将API范围设置为Admin SDK中所需的任何内容(例如,https://www.googleapis.com/auth/admin.directory.group
)
我需要做的另一件事是确保我的请求是代表管理用户提出的。使用PHP API,设置凭据对象如下所示:
$cred = new Google_Auth_AssertionCredentials(
$clientEmail,
'https://www.googleapis.com/auth/admin.directory.group',
file_get_contents($keyFile));
$cred->sub = 'admin@example.com';
现在,我能够使用Google\u Service\u目录
类成功地进行调用。我确实尝试过这一点,但所有这些似乎都适用于OAuth1,而不是OAuth2。是否不可能使用OAuth2进行此操作?