Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ API 3 Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ sendgrid Ρ ΠΌΠΎΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ node.js. Π£ ΠΌΠ΅Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΠΏΠΈΡΡΠΌΠΎ ΠΈΡΡΠ΅Π·Π°Π΅Ρ, Π½ΠΎ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
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 ,
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³ΡΡ: https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π΄Π°ΠΉΡΠ΅ ΠΌΠ½Π΅ Π·Π½Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½ΠΈΠΌΠΈ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΡΠΈΠ²Π΅Ρ @ neeraj87 ,
ΠΡΠΎΡΡΠΎ Π²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° JSON Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π°ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΡ (ΠΊΠ»ΡΡ) ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΎΠΉ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ. ΠΠ΅ ΠΌΠ°ΡΡΠΈΠ².
"substitutions": {
"-sub1-": "This is the new substitured text",
"-sub2-": "Substitured text"
}
@thinkingserious ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΡΡΡΠ»ΠΊΡ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π²ΡΠ΅
@alperenozlu ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ, ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ JSON ΠΈ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
@thinkingserious ΠΎΠ΄ΠΈΠ½ Π±ΡΡΡΡΡΠΉ Π²ΠΎΠΏΡΠΎΡ, Ρ ΠΏΡΡΠ°ΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π³ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½ΠΎ ΠΎΠ½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π΄Π°Π²Π°ΡΡ ΠΌΠ½Π΅: errors: [{message: 'Bad Request', field: null, help: null}]
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
{ΠΎΡΠΈΠ±ΠΊΠΈ: [{message: 'Bad Request', field: null, help: null}]}
{ΡΠ΅ΡΠ²Π΅Ρ: 'nginx',
date: 'Thu, 01 Dec 2016 07:08:51 GMT',
'content-type': 'ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ / json',
'content-length': '63',
connection: 'keep-alive'}
ΠΡΠΈΠ²Π΅Ρ @ neeraj87 ,
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΈΠΏ Π²Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΈΡ ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΊΠ»ΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ .
@alperenozlu Π²Ρ ΠΏΡΠ°Π²Ρ, ΠΎΠ΄Π½Π° ΠΈΠ· Π·Π°ΠΌΠ΅Π½ Π±ΡΠ»Π° ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ. ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π» Π΅Π³ΠΎ Π² ΡΡΡΠΎΠΊΡ, ΠΈ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ.
ΠΡΠΈΠ²Π΅Ρ ΡΠ΅Π±ΡΡΠ°!
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠΎΠΊΠΎΠΉ?
@Deniscapp Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΈΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ ΠΈΡ Π² ΡΡΡΠΎΠΊΡ.
@ neeraj87 Π²ΠΎΡ ΡΡΠΎ Ρ ΡΠ΄Π΅Π»Π°Π»! ΠΠΎ ΠΌΠ½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π»ΠΈ ΠΎΠ½ΠΈ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠ°ΠΊ-Π½ΠΈΠ±ΡΠ΄Ρ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ²Π΅Ρ! :)
@Deniscapp ΠΎΠΉ, Π½Π΅ Π·Π½Π°Π» ΡΡΠΎΠ³ΠΎ. Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ Π² Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. ΠΠΎΠΆΠ΅Ρ, ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ "ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ" ΠΈΠ· SendGrid ΡΠΌΠΎΠΆΠ΅Ρ Π½Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ.
@Deniscapp , @ neeraj87
ΠΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ API:
ΠΠ°Π±ΠΎΡ ΠΏΠ°Ρ ΠΊΠ»ΡΡ / Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ Β«substitution_tagΒ»: Β«Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½ΡΒ». ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΎ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΡΠ΅ΠΊΡΡΡ ΠΈ html-ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΡΠ΅Π»Π° Π²Π°ΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠ° Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΠ΅ΠΌΡ ΠΈ ΠΎΡΠ²Π΅ΡΠ°.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ²Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ»ΠΈ ΠΈΡ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ Π·Π° ΠΊΡΠ»ΠΈΡΠ°ΠΌΠΈ.
ΠΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ URL-Π°Π΄ΡΠ΅Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ @thinkingserious, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ: https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @vaskort!
Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΡΡΡΠ»ΠΊΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΎΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ URL-Π°Π΄ΡΠ΅Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ @thinkingserious, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ: https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md