Gmail上下文小工具(Gmail插件/扩展程序):已弃用?不可能?怎么样? (不能做OAuth 2.0)

时间:2014-10-06 17:06:53

标签: oauth-2.0 gmail google-oauth gmail-contextual-gadgets

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

在您给我标准页面之前,请确保它有:

  • 最低限度,使用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

     

您的应用程序不得使用OpenID或OAuth1.0。任何此类使用的证据都会导致您的申请未通过审核流程。

请注意,Contextual Gadgets是客户端Javascript应用程序,与Web服务器应用程序和已安装的应用程序截然不同。所以OAuth 2.0应该像这样使用:

  

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

但上下文小工具在一个容器中运行,该容器处理第一次OAuth调用(谷歌调用,用令牌回调我们的网站......)。生活在客户端,上下文小工具“无法保守秘密”。我们的网站(重定向页面,https://example.com/oauth2callback)需要将访问令牌(可能是刷新令牌)保存到客户端可访问的小工具代码的会话中。

我理想情况下不会使用SSO,我认为这只是“部署在市场上的应用程序所需”。替代部署是“针对您的域”,使用 Google Apps扩展控制台

  

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

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

  

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

开发人员控制台

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

无法在上下文小工具中的任何位置报告此客户端ID。它是否可以注册?

另外(一个错误?),权限在“服务帐户”下显示我的客户端ID,即使我没有创建服务帐户凭据。

然后:我不知道如何从这个新的开发者控制台在我的域上部署我的上下文小工具(它不是一个独立的应用程序)。在概述和左侧的计算选项卡下似乎只有与云部署相关的选项。

当我尝试从Apps Extensions控制台进行部署时(据说不会弃用,只是改进了),我收到此错误:

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控制台永远不会访问我创建的重定向页面,也从不在我的网站上读取小工具规范文件(从未被谷歌按照承诺访问过),因此错误消息必须说明了manifest.xml不使用OAuth 2.0 ...或者应用程序扩展控制台本身并不使用它并责备我!

所以,Gmail上下文应用:

  • 弃用?
  • 现在不可能?
  • 使用OAuth 2.0授权?怎么样?

4 个答案:

答案 0 :(得分:5)

Google Contextual Gadgets的文档是一个糟糕的开玩笑错误,不要浪费你的时间。

这里的答案让我更接近,但我从来没有真正得到这个东西。

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

1-使用gmail.js下载Gmail Chrome Extension Boilerplate项目,这是一个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

答案 1 :(得分:4)

也有同样的问题。我(几乎没有)通过以下步骤设法将我的小工具放在我的域电子邮件上。这是我可以分享的内容;

1)通过(https://console.developers.google.com)创建项目。在API侧导航菜单下切换Marketplace SDK。一旦打开,请转到页面顶部,然后点击Google Apps Marketplace SDK的“齿轮齿轮”。这将引导您进入一个带有链接的页面(转到原始控制台)。点击链接。

2)您应该转发到表单页面。填写表单中的所有必填字段。检查COB扩展并在文本字段Extractor Url下声明您的提取器ID(我使用预先提取的提取器,未使用自定义提取器进行测试),通过文本字段Gadget Url声明您的小工具网址,然后选择范围。完成后单击“添加”按钮,然后单击“保存更改”按钮。

3)转到API Access菜单,然后创建OAuth 2客户端ID。

这里的步骤对我来说并不清楚,但我会分享我在我的域名中提供小工具所做的工作。

3)我点击了表单顶部的Test Install Flow按钮。

4)我添加了admin用户作为该项目的编辑器。

5)然后我必须退出,清除缓存,以admin / domain用户身份登录,以查看电子邮件底部的上下文小工具。

希望这有帮助。

答案 2 :(得分:2)

https://developers.google.com/gmail/contextual_gadgets所描述的方式似乎完全过时了。即使Google Apps控制台中的小工具表单似乎也已过时。

您需要遵循以下说明:https://developers.google.com/apps-marketplace/preparing

现在使用API​​控制台(而非app控制台)开发上下文小工具,并且有一个表单来创建提取器等。

答案 3 :(得分:0)

请按照以下步骤操作:

  1. 登录您的管理员Gmail
  2. 打开新标签页并输入http://console.developers.google.com
  3. 点击Gmail左侧面板中的API部分
  4. 选择以下API
    一世。 gmail API
    II。 Google Marketplace API
    III。日历API
    IV。 Google Admin SDK
  5. 启用所有上述API后,请打开Goog​​le Apps Marketplace SDK并点击配置链接(您必须生成客户端ID)
  6. 使用适当的数据填充数据,您还需要上传适当大小的图像
  7. 填写所有必填字段并按照Google建议添加提取器 i)param名称应该根据上下文API而且所有的值都是&#34;。*&#34; 否则小工具不会出现在gmail中
  8. 启用通用服务网址
  9. 启用COB扩展程序
  10. 添加Gmail上下文小工具提取器,您可以为小工具添加多个提取器,但小工具网址应与所有提取器相同
  11. 您可以为每个提取器添加多个范围
  12. 保存所有更改。
  13. 这就是全部!

    您可以点击以下链接供您参考: https://developers.google.com/apps-marketplace/preparing