0

是否可以使用 AMP-HTML 邮件格式与服务器通信?我不认为它记录得那么好。有一些关于普通 AMP-HTML 的信息,但关于电子邮件的信息不多。

这是我要发送的 amp 邮件。我想从我的服务器中获取秘密词而不是硬编码。

<!doctype html>
<html ⚡4email>
  <head>
    <meta charset="utf-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>
    <style amp4email-boilerplate>body{visibility:hidden}</style>
  </head>
  <body>
  <!-- Store complex nested JSON data in <amp-state> elements. -->
    <amp-state id="words">
      <script type="application/json">
        {
          "SecretWord": "fetched"
        }
      </script>
    </amp-state>

    <p [text]="'Your word is: ' + currentWord + '.'">Click to show magic word</p>


    <button on="tap:AMP.setState({currentWord: words['SecretWord']})">Show word</button>
  </body>
</html>
4

1 回答 1

0

是的,没有太多关于 AMP4Email 的文档。最近,经过许多不成功的努力,我设法使用 AMP4Email 完成了我的一个用例。

您可以参考以下示例来实现您的目标:

<!doctype html>
<html ⚡4email>
  <head>
    <meta charset="utf-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>
    <style amp4email-boilerplate>body{visibility:hidden}</style>
  </head>
  <body>

    <amp-state id="fruits"
    src="https://amp.dev/static/samples/json/related_products.json"></amp-state>

    <p [text]="'My favorite fruit is : ' + favoriteFruit + '.'">Click to find my favorite fruit.</p>

    <button on="tap:AMP.setState({favoriteFruit: fruits.items[0]['name']})">Show</button>
  </body>
</html>

我使用了来自示例的 API ampproject.org,它返回水果的 JSON items。但是,您可以编写自己的 API,只发送您喜欢的单词。

为了编写自己的服务,您必须非常小心响应标头。如果您查找此 API 的响应标头,您会看到一些标头,例如access-...amp-...。如果您想在 AMP4Email 中使用您的 API/服务,这些标头是强制性的。

强制性响应标头是:

AMP-Access-Control-Allow-Source-Origin: <value received in __amp_source_origin query param for your service>
Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
Access-Control-Allow-Origin: <origin, e.g. 'https://mail.google.com', if your service is hit from GMail inbox)

PS:__amp_source_origin标题由GMail附加。您将收到来自 AMP4Email HTML 的所有请求的此标头。

于 2019-04-10T22:52:01.387 回答