测试安装流程后,我无法看到我的小工具加载

时间:2016-08-22 16:06:18

标签: gmail-contextual-gadgets

我想要实现的目标?
打开电子邮件时,我的小工具会显示收件箱中的所有电子邮件。

我拥有的东西

  1. 我有一个Google for Business帐户,我可以从商店部署上下文小工具。
  2. 我有一个清单文件显然不再需要这个,而是在API管理器信息中心配置“Google Apps Marketplace SDK”取代
  3. 我有一个小工具文件https://outlookbridge.synbeta.com/Google/gadget.xml
  4. 我创建了一个项目,启用了两个应用,Gmail API和Google Apps Marketplace SDK以及一个OAUTH 2.0客户端ID
  5. 下面的Gadget.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <Module>
      <ModulePrefs title="Revelation Bridge"
        description="Revelation Bridge for Gmail"
        height="220"
        author="Yellowfish Software"
        author_email="info@yellowfishsoftware.com"
        author_location="Westport, CT">
    
        <!-- This one is not specific to Gmail contextual gadgets. -->
        <Require feature="dynamic-height"/>
    
        <Require feature="google.contentmatch">
          <Param name="extractors">
            google.com:SenderEmailExtractor
          </Param>
        </Require>
    
      </ModulePrefs>
    
      <Content type="html" view="card">
        <![CDATA[
          <!-- Start with Single Sign-On -->
          <script type="text/javascript">
    
            <!-- Fetch the array of content matches. -->
            matches = google.contentmatch.getContentMatches();
            var matchList = document.createElement('UL');
            var listItem;
            var extractedText;
    
            <!-- Iterate through the array and display output for each match. -->
            for (var match in matches) {
              for (var key in matches[match]) {
                listItem = document.createElement('LI');
                extractedText = document.createTextNode(key + ": " + matches[match][key]);
                listItem.appendChild(extractedText);
                matchList.appendChild(listItem);
              }
            }
            document.body.appendChild(matchList);
            gadgets.window.adjustHeight(100);
          </script>
        ]]>
      </Content>
    </Module>
    

    这就是市场SDK的配置方式 enter image description here

    点击“测试安装”并提供对我的Gmail的访问权限 config showing gadget access to my gmail

    另外,当我不告诉Google我的清单文件的位置时,我不知道清单文件的目的是什么?

    我希望我的小工具能够在每封电子邮件中显示自己。在 API管理器下 - &gt; Google Apps Marketplace SDK - &gt; 配置 - &gt; Gmail上下文小工具扩展程序,我有 Extractor网址作为“tag:google.com,2010:auth / contextual / extractor / FROM_ADDRESS”并选择了一个范围“邮件 - 发件人地址”。小工具网址为https://outlookbridge.synbeta.com/Google/gadget.xml

    我在打开的任何电子邮件中都没有看到我的小工具。是什么赋予了?

1 个答案:

答案 0 :(得分:3)

我终于想出了如何完成这项工作,这就是我所做的和截至2016年8月24日的工作

  1. 您需要一个Google商家帐户。这对常规Gmail用户不起作用。
  2. 您需要四个尺寸为128 * 128,96 * 96,48 * 48和32 * 32的png徽标文件。
  3. 登录https://console.developers.google.com,然后点击左上角的汉堡菜单,点击 IAM&amp;管理员,然后点击所有项目
  4. 创建一个新项目,这就像您的小工具容器和您可能需要使用的Google API一样,包括您可能需要的任何OAUTH。
  5. 创建项目后,从汉堡菜单中单击 API Manager 。此API Manager将用于您之前创建的选定项目
  6. 信息中心会显示已启用的APIS。
  7. 点击图书馆,然后搜索 Google Apps Marketplace SDK ,点击它,然后点击“启用
  8. 启用API后,它会提示您创建OAuth 2.0凭据,然后才能配置API。
  9. 授权的JavaScript来源,是您的脚本和小工具文件所在的位置。
  10. 还需要授权的JavaScript来源。
  11. 您无需下载凭据。
  12. 返回信息中心屏幕并点击API下的 Google Apps Marketplace SDK
  13. 点击配置,第二个标签
  14. 在配置屏幕中,输入应用程序名称和应用程序说明。这不是小工具显示在电子邮件中时显示的内容。这就是我的屏幕看起来像
  15. settings1 settings2

    这里的重点。我理解提取器和小工具的方式。提取器是指定您希望小工具显示在哪些电子邮件上的条件。如果您希望您的小工具显示所有电子邮件,那么您将使用提取器google.com:MessageIDExtractor。

    这就是我指定提取器的方式,其中所有6个,如果你想要一个小工具显示所有电子邮件,你可能只需要使用一个,但我想测试我会得到什么。

    settings

    在提取器旁边,您还可以看到选择范围。

    在小工具文件中指定提取器,如下所示

    <Require feature="google.contentmatch">
          <Param name="extractors">google.com:SenderEmailExtractor, google.com:RawSubjectExtractor, google.com:SubjectExtractor, google.com:EmailBodyExtractor, google.com:EmailTimeExtractor, google.com:MessageIDExtractor</Param>
        </Require>
    

    您在我的设置中看到的参数,我从这里得到它们,我没有打扰更改这些参数的名称 https://developers.google.com/gmail/contextual_gadgets#supported_extractors

    6个提取器的提取器参数值设置为“。*”。这基本上告诉Google为所有值加载提取器。

    点击保存

    保存页面后,您会在顶部看到测试安装流程按钮。点击它只为您安装小工具。

    完成安装过程后,可能需要5分钟才能安装小工具。您可以通过点击gmail中的启动栏图标和更多

    来了解您的小工具的安装情况

    如果您仍未看到自己的小工具,请在包含此网址的新标签页中打开您的收件箱https://mail.google.com/mail/u/0/?nogadgetcache=1#inbox

    您可以在小工具中使用此代码来打印提取器捕获的所有值

    <Content type="html" view="card">
        <![CDATA[
          <!-- Start with Single Sign-On -->
          <script type="text/javascript">
    
            <!-- Fetch the array of content matches. -->
            matches = google.contentmatch.getContentMatches();
            var matchList = document.createElement('UL');
            var listItem;
            var extractedText;
    
            <!-- Iterate through the array and display output for each match. -->
            for (var match in matches) {
              for (var key in matches[match]) {
                listItem = document.createElement('LI');
                extractedText = document.createTextNode(key + ": " + matches[match][key]);
                listItem.appendChild(extractedText);
                matchList.appendChild(listItem);
              }
            }
            document.body.appendChild(matchList);
            gadgets.window.adjustHeight(100);
          </script>
        ]]>
      </Content>
    

    为了完成起见,这是我的示例小工具文件

    <?xml version="1.0" encoding="UTF-8"?>
    <Module>
      <ModulePrefs title="In Gadget"
        description="In Gadget"
        height="220"
        author="In Gadget Software"
        author_email="info@InGadget.com"
        author_location="In Gadget, Earth">
    
        <!-- This one is not specific to Gmail contextual gadgets. -->
        <Require feature="dynamic-height"/>
    
        <Require feature="google.contentmatch">
          <Param name="extractors">google.com:SenderEmailExtractor, google.com:RawSubjectExtractor, google.com:SubjectExtractor, google.com:EmailBodyExtractor, google.com:EmailTimeExtractor, google.com:MessageIDExtractor</Param>
        </Require>
    
      </ModulePrefs>
    
      <Content type="html" view="card">
        <![CDATA[
          <!-- Start with Single Sign-On -->
          <script type="text/javascript">
    
            <!-- Fetch the array of content matches. -->
            matches = google.contentmatch.getContentMatches();
            var matchList = document.createElement('UL');
            var listItem;
            var extractedText;
    
            <!-- Iterate through the array and display output for each match. -->
            for (var match in matches) {
              for (var key in matches[match]) {
                listItem = document.createElement('LI');
                extractedText = document.createTextNode(key + ": " + matches[match][key]);
                listItem.appendChild(extractedText);
                matchList.appendChild(listItem);
              }
            }
            document.body.appendChild(matchList);
            gadgets.window.adjustHeight(100);
          </script>
        ]]>
      </Content>
    </Module>
    

    据我所知,您不需要清单文件来测试您的小工具。

    如果小工具内容类型为html且类型为卡,则上述小工具似乎无效。