首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未经授权访问电子邮件设置Google API

未经授权访问电子邮件设置Google API
EN

Stack Overflow用户
提问于 2015-04-27 10:28:59
回答 2查看 233关注 0票数 1

我同时使用GAM和Google库来集成Google。

我使用的是一个服务帐户,并已授权管理控制台中的客户端ID访问以下两个作用域:

  1. https://www.googleapis.com/auth/drive
  2. https://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。

对尝试什么有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-27 23:03:52

GAM不为电子邮件设置API使用服务帐户,它为安装的应用程序使用标准的OAuth 2.0。确保您使用超级管理员授权GAM访问电子邮件设置API。如果你没有,快跑

代码语言:javascript
复制
gam oauth revoke

然后是另一个命令,比如:

代码语言:javascript
复制
gam all users show imap

这一次,请确保您是作为一个超级管理员登录。

票数 0
EN

Stack Overflow用户

发布于 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是超级管理帐户的电子邮件。

希望这能帮到别人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29893200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档