【问题标题】:What is the best way for us to fetch GMails after domain wide access has been granted to our app?在向我们的应用授予域范围访问权限后,我们获取电子邮件的最佳方式是什么?
【发布时间】:2014-09-12 18:58:33
【问题描述】:

我们正在 Google Apps Marketplace 上构建一个应用程序,该应用程序位于 GMail 之上并读取客户电子邮件以在其之上提供分析。根据我对文档的理解:

  1. 当客户帐户的 IT 管理员安装我的应用程序时,我的应用程序会请求所需的权限,然后将其授予 OU/Org。
  2. 现在我有两种情况:
    • 一个。用户通过 Google+ 登录以访问我网站上的电子邮件
    • 乙。我们的服务在后台运行分析并在必要时提供通知/报告。

我希望能够做到这一点,而无需再次向每个单独的用户询问权限。为所有用户获取特定客户域的电子邮件的方法是什么?如果我遵循正常的“服务器身份验证”流程,我需要一个刷新令牌,我需要 access_type=offline 它总是提示一个授权请求,如果我使用服务帐户,我会收到一个 HTTP 500“后端错误” App Engine 本地开发服务器。

在我投入时间走上任何一条道路之前,我想确定最佳做法是什么。 GMail API 文档讨论了服务对象,但没有提到服务帐户或 AppAssertionCredentials 之类的东西。

【问题讨论】:

    标签: google-app-engine google-oauth google-apps-marketplace gmail-api


    【解决方案1】:

    使用服务帐户是正确的方法,并且可以将其与新的 Gmail API 一起使用。不幸的是,500 错误的描述性不强,但请尝试重新阅读服务帐户文档并检查您是否已正确设置所有内容。

    【讨论】:

      【解决方案2】:

      可以使用服务帐户执行此操作,并让域管理员在 cpanel 中将您的应用列入白名单。为了在域中请求 $RANDOM_USER 的凭据,需要对密钥进行一些工作来形成 JWT 声明集,但它在以下位置得到了很好的解释: https://developers.google.com/accounts/docs/OAuth2ServiceAccount#formingclaimset

      完成此操作后,使用 Gmail API 应该与用户直接授予您访问权限时相同。

      【讨论】:

        猜你喜欢
        • 2012-06-30
        • 2019-11-10
        • 2011-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多