#amp-html #amp-email
#amp-html #amp-электронная почта
Вопрос:
Возможно ли использовать почтовый формат 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>
Ответ №1:
Да, документации по 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 из примера by ampproject.org
, который возвращает JSON items
из fruits. Но вы можете написать свой собственный API, который отправляет только ваше любимое слово.
Чтобы написать свой собственный сервис, вы должны быть очень осторожны с заголовками ответов. Если вы посмотрите на заголовки ответов этого API, вы увидите некоторые заголовки, такие как access-...
и amp-...
. Эти заголовки обязательны, если вы хотите использовать свой API / сервис в AMP4Email.
Обязательными заголовками ответа являются:
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.