Kan*_*zar 18 gmail oauth-2.0 gmail-contextual-gadgets google-oauth
我们需要开发一个内部gmail扩展来处理收到的电子邮件,允许收件人与我们的内部软件进行交互.我一直试图弄清楚如何在Gmail上下文小工具中使用OAuth 2.0,但我找不到任何具体的文档.当我使用contextual + google-oauth(Google推荐的关键字)搜索堆栈溢出时,我找不到任何有用的东西.
在您给我标准页面之前,请确保它有:
例如,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,我认为这只是"部署在市场上的应用程序所需".替代部署是"for your domain",它使用Google Apps Extensions控制台:
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)
Run Code Online (Sandbox Code Playgroud)
更重要的是,返回仪表板按钮将我带到域管理站点,该站点既不允许开发也不允许部署:
顺便说一下,Apps Extensions控制台永远不会访问我创建的重定向页面,也从不读取我网站上的小工具规范文件(从未被谷歌按照承诺访问),因此错误消息必须说明了manifest.xml没有使用OAuth 2.0 ...或者应用程序扩展控制台本身并没有使用它并责怪我!
那么,Gmail上下文应用:
Google Contextual Gadgets的文档是一个糟糕的笑话过时和错误,不要浪费你的时间.
这里的答案让我更接近,但我从来没有真正得到这个东西.
幸运的是我最终找到了gmail.js,这让我可以编写一个Chrome扩展来做我需要的...
1-下载Gmail Chrome扩展程序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>');
});
}
Run Code Online (Sandbox Code Playgroud)
那会给你这个:
也有同样的问题。我(勉强)设法通过以下步骤将我的小工具添加到我的域电子邮件中。这是我可以分享的内容;
1)通过( https://console.developers.google.com )创建了一个项目。在 API 侧导航菜单下打开 Marketplace SDK。打开后,转到页面顶部并点击 Google Apps Marketplace SDK 的“齿轮”。这将引导您进入一个带有链接的页面(转到原始控制台)。点击链接。
2) 您应该被转发到一个表单页面。填写表格中的所有必填字段。检查 COB 扩展并在文本字段 Extractor Url 下声明您的提取器 ID(我使用了预装提取器,尚未使用自定义提取器对其进行测试),通过文本字段 Gadget Url 声明您的小工具 URL,然后选择范围。完成后单击“添加”按钮,然后单击“保存更改”按钮。
3) 转到 API 访问菜单,然后创建 OAuth 2 客户端 ID。
我不清楚这些步骤,但我将分享我为使这些小工具在我的域上可用而所做的工作。
3)我单击了表单顶部的“测试安装流程”按钮。
4)我添加了管理员用户作为该项目的编辑者。
5)然后我必须注销,清除缓存,以管理员/域用户身份登录才能查看电子邮件底部的上下文小工具。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
3087 次 |
| 最近记录: |