无法使用gmail上下文小工具获取邮件正文

时间:2013-05-27 07:08:51

标签: google-apps google-gadget

这是我的 manifest.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>
<ApplicationManifest xmlns="http://schemas.google.com/ApplicationManifest/2009">
 
  <Name>My test gadget</Name>
  <Description>Test Gmail contextual gadgets for mail body</Description>
 
 
<Extension id="MailBodyReaderGadget" type="contextExtractor">
  <Name>Mail Body Reader Gadget</Name>
  <Url>google.com:EmailBodyExtractor</Url>
  <Param name="body" value=".*" />  
  <Triggers ref="mailBodyTextWidget" />  
  <Scope ref="emailBody" />
  <Container name="mail" />
</Extension>
 
<!-- our GADGET -->
<Extension id="mailBodyTextWidget" type="gadget">
  <Name>Get mail body</Name>
  <Url>http://test.com/spec.xml</Url>
  <Container name="mail" />
</Extension>
 
<!-- gadget Scope -->
<Scope id="emailBody">
  <Url>tag:google.com,2010:auth/contextual/extractor/BODY</Url>
  <Reason>This app will show the mail body text when you click the button "Show Mail Body"</Reason>
</Scope>

</ApplicationManifest>

spec.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<Module>
  <ModulePrefs 
    height="200"
    author=""
    author_email=""
    author_location="US">
        <Require feature="dynamic-height"/>
        <Require feature="google.contentmatch">
            <Param name="extractors">
                google.com:EmailBodyExtractor
            </Param>
        </Require>
    </ModulePrefs>
    <Content type="html" view="card">
    <![CDATA[       
        <script type="text/javascript">
        document.write([
          "\<script src='",
          ("https:" == document.location.protocol) ? "https://" : "http://",
          "ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>" 
        ].join(''));
        </script>
        <button id="btn">Show Mail Body</button>
        <div id="widget" style="heigth:300px;width:500px;">
        </div>
        <script>
            matches = google.contentmatch.getContentMatches();
            for (var match in matches) {
              for (var key in matches[match]) {                      
                $("#widget").html(matches[match][key]);            
              }
            }        
        </script>     
    ]]>
  </Content>
</Module>

这是我的代码,我一直试图获取邮件主题,并从电子邮件地址获取它已经工作。但主要问题是我无法取邮件。有没有解决方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

答案是删除节点&lt; Param name =“body”value =“。*”/&gt;

这个让我陷入困境,因为我认为&lt; param&gt; node需要定义要在我们的小工具中使用的输出参数的名称。

但实际上MailBodyReaderGadget会自动输出“body”的参数。 所以&lt; Param&gt;节点仅在您希望过滤输出时使用。

由于您总是希望输出正文,因此可以完全删除此节点。

目前无法正常工作的原因是。*过滤器与返回字符(将在正文中)不匹配