问题标签 [gmail-contextual-gadgets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3157 浏览

oauth-2.0 - Gmail 上下文小工具(Gmail 插件/扩展):已弃用?不可能的?如何?(不能做 OAuth 2.0)

我们需要开发一个内部 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

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

请注意,上下文小工具是客户端 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 Extensions Console

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

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

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

开发者控制台

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

上下文小工具中没有任何地方可以报告此客户端 ID。是注册后忘记吗?

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

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

当我尝试从 Apps Extensions Console 进行部署时(据说没有被弃用,只是得到了改进),我收到了这个错误:

更重要的是,返回仪表板按钮将我带到既不允许开发也不允许部署的域管理站点:

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

顺便说一句,Apps Extensions Console 永远不会访问我创建的重定向页面,也永远不会读取我网站上的小工具规范文件(谷歌从未按承诺访问过),因此错误消息必须说 manifest.xml 没有使用 OAuth 2.0... 或 Apps Extensions Console 本身不使用它并责怪我!

因此,Gmail 上下文应用程序:

  • 已弃用?
  • 现在不可能了?
  • 使用 OAuth 2.0 授权?如何?
0 投票
0 回答
86 浏览

google-apps-marketplace - Gmail 上下文小工具在长对话模式消息中失败

我们注意到谷歌小工具在长时间的对话中失败了。

在某些情况下,小工具根本不会出现在较长的对话中。在其他情况下,只有一些提取器可用,但小工具是可见的。

注意:- 这只会发生在长时间的对话中。

我希望其他人能够确认/否认这种行为。

为此 - 只需打开一个较长的 Gmail 对话并确认您的小工具是否按预期工作。

感谢您对此的帮助!


编辑 18/10

我对这个问题做了更多的挖掘。如果我调试小工具,匹配数组只有前两个值,而我们的规范定义为 6。

我们得到匹配[2]

匹配[0] = date_sent

匹配[1] = date_received

因此,由于某种原因,由 Google 填充的匹配数组并不完整。在较短的对话中,所有 6 个匹配值都被填充......

我们得到匹配[6]

匹配[0] = date_sent

匹配[1] = date_received

匹配[2] = message_id

匹配[3] = 收件人收件人电子邮件

匹配[4] = 主题

匹配[5] = sender_email

0 投票
1 回答
65 浏览

google-apps-marketplace - 将私有小工具限制为特定 OU

我一直在阅读有关 Gmail 上下文小工具的文档,但找不到有关是否可以将私有小工具部署到特定 OU 或者是否必须为整个组织打开它的信息。如果您将小工具发布到 Marketplace,您似乎可以做到这一点,但在我们的场景中,小工具可能无法提供足够的功能来成为 Marketplace 应用程序。

0 投票
0 回答
314 浏览

google-chrome - Chrome 扩展程序或 Gmail 上下文小工具?

我一直在考虑为 gmail 添加一个“扩展”,这是用于工作中的应用程序,基本上我们希望以某种方式集成一些选项(按钮),在当前正在查看的电子邮件的上下文中。

然后,我们的用户将能够安装扩展程序,并且扩展程序将与我们的应用程序建立授权方面(尚不确定这是如何完成的)。

到目前为止,我已经研究了两个选项,不确定我是否走在正确的轨道上:

  • Chrome 扩展,然后使用 gmail.js(github 上的一些第三方库),并使用一些 jquery 搜索 DOM 以将按钮插入回复/删除工具栏。

我知道这会更直接,但如果页面布局更改或类名更改,它会出现问题。并且还需要使用 chrome (这是我们很好的)

  • 创建一个位于电子邮件底部的 gmail 上下文小工具插件,不过,我不确定此上下文小工具是否会出现在电子邮件主线程的末尾或每个单独的电子邮件中,并且需要扩展?

如果我错了,也请纠正我,但 gmail 上下文小工具是否仅限于在其公司订阅了 Google Apps 的用户?即我们必须在我们的域中订阅谷歌应用程序并将其部署在谷歌应用程序市场上,同样还有想要安装这个小工具的用户也使用谷歌应用程序?

提前感谢大家的帮助。

0 投票
1 回答
88 浏览

google-gadget - gmail 上下文小工具域名

我正在写一个 Gmail 上下文小工具,

有没有办法使用小工具 xml 传递域名,例如

域=${DOMAIN_NAME}

任何其他方式使用 API 获取域名?

我们有多个 CRM 客户端,希望根据域名连接客户端数据库。

0 投票
1 回答
64 浏览

gmail-contextual-gadgets - Gmail 小工具的“RecipientToEmailExtractor”不会返回所有收件人的电子邮件地址

我有一个使用谷歌提供的一些内容提取器的 Gmail 上下文小工具应用程序。

我注意到“google.com:RecipientToEmailExtractor”最近只返回一个电子邮件地址,即使电子邮件有多个收件人。它曾经对我正常工作一段时间,返回多个用“;”分隔的地址。

有没有其他人遇到过这个问题?这是谷歌的错误吗?

0 投票
1 回答
117 浏览

gmail - 创建 Gmail 功能的最佳方式是什么?

我想为 Gmail 创建一个“功能”,以跟踪没有得到回复的电子邮件。它将每天检查所有已发送的电子邮件是否有回复,并在特殊文件夹中列出未得到回复的电子邮件/添加标签,以便我可以轻松检查它们。

我已经找到了一个脚本,但是以自助方式添加到没有经验的用户帐户中并不容易(您必须下载并“安装”它)。此外,它经常崩溃——它可能检查的电子邮件数量似乎受到 Gmail 的限制。

我不打算自己开发它,但我很好奇您对开发它的最佳方式(例如编程语言)的看法,因此我可以寻找合适类型的开发人员。

最好的,三月

0 投票
1 回答
91 浏览

widget - gmail是否允许自定义小部件在其中工作?..如果是这样,实现它的路线图是什么?

我想使用自定义小部件将一些数据从 salesforce 导入 gmail。怎么做?

0 投票
1 回答
302 浏览

gmail-api - 使用 gmail add on 操作电子邮件的内容

嗨,我正在尝试为 gmail 开发一个插件,该插件将在 gmail 中读取电子邮件并操纵电子邮件的内容。

更具体地说,我想更改电子邮件中的某些单词。

我已经开发了一个插件,可以检索电子邮件并将消息作为字符串处理,但我不知道如何重新显示它。

这可能吗?如果是这样,我需要使用哪个 API?

0 投票
1 回答
227 浏览

google-apps-marketplace - 如何在 Gmail 上下文小工具中实现签名授权类型

我正在从现有代码部署内部 Gmail 上下文小工具。通过参考此文档在我的谷歌应用程序域中部署了小工具:https ://developers.google.com/apps-marketplace/preparing

但是这里response.rc总是返回状态码为 500。并且 gadgets.io.makeRequest()函数不会向 url 发出任何请求(应用程序托管在 appengine 上)。这似乎是SIGNED Authorization. 如何SIGNED Authorization在 Gmail 小工具中实现?