我们需要开发一个内部gmail扩展来处理收到的电子邮件,允许收件人与我们的内部软件进行交互。我一直试图弄清楚如何在Gmail上下文小工具中使用OAuth 2.0,但我找不到任何具体的文档。当我使用contextual + google-oauth(谷歌推荐的关键字)搜索堆栈溢出时,我找不到任何有用的东西。
在您给我标准页面之前,请确保它有:
例如,Contextual Gadgets页面中的标准hello示例使用OpenID(“openIdRealm”),并且是在OAuth 2.0之前编写的:
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/
但是扩展控制台首先说“我们正在改善用户体验,尝试新的开发者控制台”,链接到:
开发人员控制台:
无法在上下文小工具中的任何位置报告此客户端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)
更重要的是,返回仪表板按钮会将我带到域管理站点,该站点既不允许开发也不允许部署:
顺便说一下,Apps Extensions控制台永远不会访问我创建的重定向页面,也从不在我的网站上读取小工具规范文件(从未被谷歌按照承诺访问过),因此错误消息必须说明了manifest.xml不使用OAuth 2.0 ...或者应用程序扩展控制台本身并不使用它并责备我!
所以,Gmail上下文应用:
答案 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>');
});
}
那会给你这个:
答案 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)
请按照以下步骤操作:
这就是全部!
您可以点击以下链接供您参考: https://developers.google.com/apps-marketplace/preparing