gpt4 book ai didi

oauth-2.0 - Gmail 上下文小工具(Gmail 插件/扩展程序): Deprecated? 不可能?如何? (不能做 OAuth 2.0)

转载 作者:行者123 更新时间:2023-12-03 13:35:32 27 4
gpt4 key购买 nike

我们需要开发一个内部 gmail 扩展来处理传入的电子邮件,允许收件人与我们的内部软件进行交互。我一直试图弄清楚如何在 Gmail 上下文小工具中使用 OAuth 2.0,但我找不到任何具体的文档。当我使用 contextual + google-oauth(Google 推荐的关键字)搜索堆栈溢出时,我找不到任何有用的东西。
在你给我标准页面之前,请确保它有这个:

  • 最低限度是使用 OAuth 2.0
  • 的 Gmail 上下文小工具 manifest.xml 示例
  • 理想情况下,解释如何在域(而不是市场)部署它,所以我知道它实际上已经部署和测试。

  • 例如,Contextual Gadgets 页面中的标准 hello 示例使用 OpenID(“openIdRealm”),并且是在 OAuth 2.0 之前编写的:

    https://developers.google.com/gmail/contextual_gadgets


    OAuth 2.0 中不允许使用 OpenID:

    https://developers.google.com/apps-marketplace/practices#3_use_oauth20

    Your application must not use OpenID or OAuth1.0. Any evidence of such usage will result in your application failing the review process.


    请注意,上下文小工具是客户端 Javascript 应用程序,与 Web 服务器应用程序和已安装的应用程序非常不同。所以 OAuth 2.0 应该像这样使用:

    https://developers.google.com/accounts/docs/OAuth2#clientsidehttps://developers.google.com/accounts/docs/OAuth2UserAgent


    但是上下文小工具在容器中运行,该容器处理 OAuth 的第一次调用(谷歌调用,它使用 token 回调我们的网站......)。生活在客户端,上下文小工具“不能保密”。我们的网站(重定向页面, https://example.com/oauth2callback)需要将访问 token (可能还有刷新 token )保存到客户端的小工具代码可以访问的 session 中。
    理想情况下,我不会使用 SSO,我认为它只是“部署在市场上的应用程序需要”。另一种部署是“为您的域”,它使用 Google Apps 扩展控制台 :

    https://developers.google.com/google-apps/extensions-console/


    但扩展控制台顶部说,“我们正在改善用户体验,试试新的开发者控制台”,它链接到:

    https://console.developers.google.com/?redirected=true


    开发者控制台 :
  • 它显示了之前在应用程序扩展控制台中创建的项目。我可以点击它打开一个大菜单(左侧)
  • APIs & Auth/Credentials -- 我为我的应用程序创建了客户端 ID 和密码。显然,我必须使用 Web 应用程序,而不是服务帐户或已安装的应用程序,因为我正在尝试访问一些用户私有(private)数据(电子邮件访问),而不仅仅是 Google 服务,而且我不是独立安装的应用程序。

  • 上下文小工具中没有任何地方可以报告此客户端 ID。是注册后忘记吗?
    另外(一个错误?),即使我没有创建服务帐户凭据,权限也会在“服务帐户”下显示我的客户 ID。
    然后是这个:我不知道如何通过这个新的开发者控制台在我的域上部署我的上下文小工具(它不是一个独立的应用程序)。在左侧的概览和计算选项卡下似乎只有与云部署相关的选项。
    当我尝试从 Apps Extensions Console 进行部署时(据说没有被弃用,只是得到了改进),我收到了这个错误:
    Google Apps Marketplace    (I never deployed to marketplace, only my own domain)
    Application installation not allowed.
    The OAuth1.0 version is no longer available.
    Instead, try installing the OAuth2.0 version.
    [Return to dashboard] (button)
    更重要的是,返回仪表板按钮将我带到既不允许开发也不允许部署的域管理站点:

    https://admin.google.com/mydomain.com/


    顺便说一句,Apps Extensions Console 永远不会访问我创建的重定向页面,也永远不会读取我网站上的小工具规范文件(谷歌从未按 promise 访问过),因此错误消息必须说 manifest.xml 没有使用 OAuth 2.0... 或 Apps Extensions Console 本身不使用它并责怪我!
    因此,Gmail 上下文应用程序:
  • 已弃用?
  • 现在不可能了?
  • 使用 OAuth 2.0 授权?如何?
  • 最佳答案

    Google Contextual Gadgets 的文档是一个糟糕的笑话——过时和错误,不要浪费你的时间。

    SO上的答案让我更接近了,但我从来没有真正让事情奏效。

    幸运的是,我最终找到了 gmail.js ,这让我可以编写一个 Chrome 扩展来做我需要的事情......

    1- 下载Gmail Chrome Extension Boilerplate项目,这是一个使用 gmail.js 的 Hello world 示例 chrome 扩展。

    2- 将 main.js 文件中的 main 函数更新为如下内容:

    var main = function(){

    gmail = new Gmail();
    gmail.observe.on("open_email", function(id, url, body, xhr) {

    // Inject a toolbar:
    var $email_body = gmail.dom.email_body();
    $email_body.prepend('<div class="my_toolbar"><a>Do something</a></div>');
    });
    }

    这会给你这个:

    enter image description here

    关于oauth-2.0 - Gmail 上下文小工具(Gmail 插件/扩展程序): Deprecated? 不可能?如何? (不能做 OAuth 2.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221203/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com