首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AMP-HTML邮件-如何与服务器通信并获取json?

AMP-HTML邮件-如何与服务器通信并获取json?
EN

Stack Overflow用户
提问于 2019-03-27 18:14:45
回答 1查看 672关注 0票数 0

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

这是我想发的电子邮件。我想从我的服务器上获取的秘密字,而不是硬编码。

代码语言:javascript
复制
<!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>
EN

回答 1

Stack Overflow用户

发布于 2019-04-11 06:52:01

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

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

代码语言:javascript
复制
<!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>

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

为了编写您自己的服务,您必须非常小心地使用响应头。如果你寻找这个接口的响应头部,你会看到一些像access-...amp-...这样的头部。如果您想在AMP4Email中使用您的接口/服务,这些头部是必需的。

必填的响应头部包括:

代码语言:javascript
复制
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:由GMail附加的__amp_source_origin报头。您将收到来自AMP4Email超文本标记语言的所有请求的此标头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55374715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档