我同时使用GAM和Google库来集成Google。
我使用的是一个服务帐户,并已授权管理控制台中的客户端ID访问以下两个作用域:
https://www.googleapis.com/auth/drivehttps://apps-apis.google.com/a/feeds/emailsettings/2.0/我还在开发人员控制台中启用了Drive和Admin。没有电子邮件设置API,我可以看到。
我遵循此页,并在测试期间授予GAM对所有作用域的访问权限--这包括电子邮件设置范围。
我可以成功地使用GAM和PHP客户端库访问Google。但是,在尝试执行https://developers.google.com/admin-sdk/email-settings/中详细说明的电子邮件设置API函数时,我总是得到403 --未经授权的
我很有信心,我已经在管理控制台中授权了正确的客户ID。当我从管理控制台中删除范围https://www.googleapis.com/auth/drive时,它会阻止我从GAM和PHP库访问Google。
对尝试什么有什么建议吗?
发布于 2015-04-27 23:03:52
GAM不为电子邮件设置API使用服务帐户,它为安装的应用程序使用标准的OAuth 2.0。确保您使用超级管理员授权GAM访问电子邮件设置API。如果你没有,快跑
gam oauth revoke然后是另一个命令,比如:
gam all users show imap这一次,请确保您是作为一个超级管理员登录。
发布于 2015-04-28 09:06:11
Jay的帖子让我找到了答案--即在访问电子邮件设置API时,我应该以超级管理员的身份登录。
因此,我创建了一个超级管理帐户,并使用它对GAM进行了身份验证。这给了GAM访问权。
为了使PHP库正常工作,我在创建OAuth2令牌时必须模拟超级管理帐户。模拟管理帐户的代码如下:
$credentials = new Google_Auth_AssertionCredentials( $service_account_email, $scopes, $private_key, 'notasecret', // Default P12 password 'http://oauth.net/grant_type/jwt/1.0/bearer', // Default grant type $admin_email );
哪里
$service_account_email是在开发人员控制台中创建的服务帐户的电子邮件地址,而不是超级管理帐户。$scopes是您需要访问的API URLs数组。$private_key是从开发人员控制台创建的P12证书的内容。$admin_email是超级管理帐户的电子邮件。希望这能帮到别人。
https://stackoverflow.com/questions/29893200
复制相似问题