0

これが私の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>

これは私のコードです。私はメールの件名を取得しようとしましたが、メールアドレスとの間で機能しました。しかし、主な問題は、メール本文を取得できないことです。これを修正する解決策はありますか?

4

1 に答える 1

0

答えは、ノード <Param name="body" value=".*" /> を削除することです

ガジェットで使用する出力パラメータの名前を定義するには <param> ノードが必要だと思っていたので、これには行き詰まりました。

しかし、実際には MailBodyReaderGadget は「本文」のパラメータを自動的に出力します。したがって、<Param> ノードは、出力をフィルタリングする場合にのみ使用されます。

常にボディを出力したいので、このノードを完全に削除できます。

現時点で機能していない理由は、.* フィルターが戻り文字 (本文に含まれる) と一致しないためです。

于 2014-05-14T21:42:46.080 に答える