Sendgrid-nodejs: Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ подстановку Π² шаблонС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ node.js

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 нояб. 2016  Β·  13ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: sendgrid/sendgrid-nodejs

РСзюмС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ 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)
    });

ВСхничСскиС подробности:

  • sendgrid-nodejs ВСрсия: master (послСдняя фиксация: [Π½ΠΎΠΌΠ΅Ρ€ фиксации])
  • Node.js ВСрсия: 4.1.2

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ URL-адрСс, упомянутый @thinkingserious, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ измСнился: https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md

ВсС 13 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ @ 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!

Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ссылку Π² ΠΌΠΎΠ΅ΠΌ исходном ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ