Ich verwende API 3 zur Integration von sendgrid in meine node.js-App. Ich habe die grundlegende E-Mail zum Laufen gebracht, muss aber bestimmte Dinge in der Vorlage durch Daten ersetzen. Unten ist der Code, den ich zum Senden von E-Mails verwende. Die E-Mail geht aus, aber die Ersetzungen funktionieren nicht.
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)
});
Hi @ neeraj87 ,
Ich hoffe, diese Beispiele helfen Ihnen: https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md
Bitte lassen Sie mich wissen, wenn Sie auf Probleme mit diesen stoßen. Vielen Dank!
Hi @ neeraj87 ,
Ihre JSON-Struktur ist einfach nicht wahr.
Die Substitution muss innerhalb des Personalisierungsarrays erfolgen. Auf diese Weise können Sie für jede Person unterschiedliche Substitutionen definieren.
Auch der Name (Schlüssel) eines Substitutionsarrays muss Substitutionen sein, und die Werte einer Substitution müssen eine Zeichenfolge sein. Kein Array.
"substitutions": {
"-sub1-": "This is the new substitured text",
"-sub2-": "Substitured text"
}
@thinkingserious danke für den Link zur Dokumentation, es hat funktioniert. Ich bemerkte auch, dass mir der Plural "s" in Substitutionen fehlte.
@alperenozlu danke für die Antwort,
@thinkingserious eine
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)
});
Dies ist der Fehler, den ich bekomme
400
{Fehler: [{Nachricht: 'Bad Request', Feld: null, Hilfe: null}]}
{server: 'nginx',
Datum: 'Do, 01. Dezember 2016 07:08:51 GMT',
'Inhaltstyp': 'application / json',
'Inhaltslänge': '63',
Verbindung: 'Keep-Alive'}
Hi @ neeraj87 ,
Bitte überprüfen Sie den Typ Ihrer Variablen, deren Typ ein String sein muss. Bitte ändern Sie auch den Schlüssel der Substitution in Substitutionen .
@alperenozlu Sie haben Recht, eine der Substitutionen war eine ganze Zahl. konvertierte es in Zeichenfolge und es funktioniert.
Danke für die Hilfe.
Hallo Leute!
Wie kann ich eine Ersetzung durch ein Array von Werten anstelle einer Zeichenfolge durchführen?
@Deniscapp Sie können die Array-Elemente lesen und zu einer Zeichenfolge verketten.
@ neeraj87 das habe ich gemacht! Aber ich habe mich nur gefragt, ob sie diese Funktion irgendwie hinzugefügt haben.
Danke für die Antwort! :) :)
@ Deniscapp oops, wusste das nicht. Ich denke es war in der älteren Version. Vielleicht kann jemand "Beamter" von SendGrid darauf antworten.
@Deniscapp , @ neeraj87
Aus den API-Dokumenten:
Eine Sammlung von Schlüssel / Wert-Paaren nach dem Muster "substitution_tag": "zu ersetzender Wert". Es wird angenommen, dass alle Zeichenfolgen sind. Diese Ersetzungen gelten zusätzlich zum Betreff und den Antwortparametern für den Text- und HTML-Inhalt des E-Mail-Textes.
Es könnte nützlich sein, wenn die Bibliothek Arrays zulässt und wir sie dann verketten, um hinter den Kulissen eine Zeichenfolge zu bilden.
Nur ein Update, das die von @thinkingserious erwähnte https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md
Danke @vaskort!
Ich habe den Link in meinem ursprünglichen Kommentar aktualisiert.
Hilfreichster Kommentar
Nur ein Update, das die von @thinkingserious erwähnte https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md