sendgridをnode.jsアプリと統合するためにAPI3を使用しています。 基本的なメールは機能しましたが、テンプレート内の特定のものをデータに置き換える必要があります。 以下は私が電子メールを送信するために使用しているコードです。電子メールは送信されますが、置換は機能しません。
var sg = require('sendgrid')('API-KEY');
var request = sg.emptyRequest();
request.body = {
"from": {
"email": "[email protected]",
"name": "Admin"
},
"personalizations" : [
{
"to": [
{
"email": recepientEmail,
"name": "User"
}
]
}
],
"subject": "This is subject",
"template_id": "template-id-here",
"substitution": {
"-sub1-": ["This is the new substitured text"],
"-sub2-": ["Substitured text"]
}
};
request.method = 'POST';
request.path = '/v3/mail/send';
sg.API(request, function(error, response) {
console.log(response.statusCode)
console.log(response.body)
console.log(response.headers)
});
こんにちは@ neeraj87 、
単純に、JSON構造は正しくありません。
置換は、パーソナライズ配列の内部にある必要があります。 このようにして、人ごとに異なる置換を定義できます。
また、置換配列の名前(キー)は、置換の置換、値は文字列でなければなりません。 配列ではありません。
"substitutions": {
"-sub1-": "This is the new substitured text",
"-sub2-": "Substitured text"
}
@thinkingseriousドキュメントへのリンクをありがとう、それは
@alperenozlu回答ありがとう
@thinkingserious 1つの簡単な質問、変数を使用してタグを
var request = sg.emptyRequest();
request.body = {
"from": {
"email": "[email protected]",
"name": "Admin"
},
"personalizations" : [
{
"to": [
{
"email": recepientEmail,
"name": userNameVariable
}
],
"substitution": {
"-sub1-": variableB,
"-sub2-": variableA
}
}
],
"subject": "This is subject",
"template_id": "template-id-here"
};
request.method = 'POST';
request.path = '/v3/mail/send';
sg.API(request, function(error, response) {
console.log(response.statusCode)
console.log(response.body)
console.log(response.headers)
});
これは私が得るエラーです
400
{エラー:[{メッセージ: '不正なリクエスト'、フィールド:null、ヘルプ:null}]}
{サーバー: 'nginx'、
日付: '2016年12月1日木曜日07:08:51GMT'、
'content-type': 'application / json'、
'content-length': '63'、
接続: 'キープアライブ'}
こんにちは@ neeraj87 、
変数の型を確認してください。型は文字列である必要があります。 また、置換への置換のキーを変更してください。
@alperenozluそうです、置換の1つは整数でした。 文字列に変換して動作します。
助けてくれてありがとう。
こんにちはみんな!
文字列だけでなく、値の配列で置換するにはどうすればよいですか?
@Deniscappを使用すると、配列要素を読み取り、それらを連結して文字列を形成できます。
@ neeraj87それが私がしたことです! しかし、私は彼らがどういうわけかこの機能を追加したのだろうかと思っていました。
答えてくれてありがとう! :)
@Deniscappおっと、それを知りませんでした。 古いバージョンだったと思います。 たぶん、SendGridの「公式」の誰かがこれに答えることができます。
@ Deniscapp 、@ neeraj87
APIドキュメントから:
パターン「substitution_tag」:「置換する値」に従うキーと値のペアのコレクション。 すべて文字列と見なされます。 これらの置換は、件名と返信先のパラメーターに加えて、電子メールの本文のテキストとhtmlコンテンツに適用されます。
ライブラリで配列を許可し、それらを連結してバックグラウンドで文字列を形成すると便利な場合があります。
@thinkingseriousによって言及された上記のURLhttps :
ありがとう@vaskort!
元のコメントのリンクを更新しました。
最も参考になるコメント
@thinkingseriousによって言及された上記のURLhttps :