Sendgrid-nodejs: рдмрд┐рдирд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐: рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдЯреЛрдХрди <(in lib / sendgrid.js рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╕реНрддреБ рдкрд░ рдЯреНрд░рд┐рдЧрд░)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдирд╡ре░ 2016  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sendgrid/sendgrid-nodejs

рд╕рд╛рд░рд╛рдВрд╢ рдЬрд╛рд░реА рдХрд░реЛ

SendGrid рдХреА рдИрдореЗрд▓ рд╕рд╣рд╛рдпрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рджред SendGrid рдХреЗ API рд╕реЗ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдЖрд╡рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдорд╛рдиреНрдп JSON (Sendgrid-рдиреЛрдбрдЬ) рд▓реМрдЯрд╛ рд░рд╣реА рд╣реИред

Uncaught SyntaxError: Unexpected token <
      at Object.parse (native)
      at node_modules/sendgrid/lib/sendgrid.js:110:42
      at IncomingMessage.<anonymous> (node_modules/sendgrid/node_modules/sendgrid-rest/lib/client.js:108:9)
      at endReadableNT (_stream_readable.js:921:12)

рд▓рд╛рдЗрди 110 рд╣реИ:

  //Use callback
  self.client.API(request, function(response) {
    response.body = response.body ? JSON.parse(response.body) : response.body;

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

  1. Sendgrid рдиреЛрдб рдкреИрдХреЗрдЬ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ -> "sendgrid": "^ 4.7.1",
  2. SendGrid рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдБ рдФрд░ рдЙрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ
  3. рдИрдореЗрд▓ рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдИрдореЗрд▓ рдмрдирд╛рдПрдВред .toJSON рдХреЛ рдЕрдВрдд рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг:

const BaseWelcomeEmail = (function(){
    const helper = require('sendgrid').mail,
        from_email = new helper.Email(testEmail),
        to_email = new helper.Email(testEmail),
        subject = "Welcome to Bedly",
        content = new helper.Content("text/plain", "hello"),

        mail = new helper.Mail(from_email, subject, to_email, content),
        personalization = new helper.Personalization();

    let substitution = new helper.Substitution(":firstname", "Aaron");

    personalization.addSubstitution(substitution);
    substitution = new helper.Substitution(":lastname", "Elk");
    personalization.addSubstitution(substitution);
    substitution = new helper.Substitution(":address", "96 Washington Avenue");
    personalization.addSubstitution(substitution);
    substitution = new helper.Substitution(":neighborhood", "Washington Heights");
    personalization.addSubstitution(substitution);
    substitution = new helper.Substitution(":unitNumber", "N/A");
    personalization.addSubstitution(substitution);
    substitution = new helper.Substitution(":roomNumber", "2J");
    personalization.addSubstitution(substitution);

    mail.addPersonalization(personalization);

    return mail;
})();

рдЖрдк рдПрдХ рдореЛрдЪрд╛ рдкрд░реАрдХреНрд╖рдг рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рдЪрд▓рд╛рдпрд╛:

    describe('Test Email Template', function () {
        it('test template ${TEMPLATE_ID} is active and is complete', function (done) {
            BaseWelcomeEmail.setTemplateId(TEMPLATE_ID);
            SendEmailImpl.sendEmail(BaseWelcomeEmail.toJSON(), done, function(error, response){
                assert_OKResponse(error, response, done);
            });
        });
    });

SendEmail рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд APIas рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп POST V3 рд╕реЗрдЯрдЕрдк рд╣реИред

рддрдХрдиреАрдХреА рдЬрд╛рдирдХрд╛рд░реА:

  • sendgrid-nodejs рд╕рдВрд╕реНрдХрд░рдг: 4.7.1
  • Node.js рд╕рдВрд╕реНрдХрд░рдг: 4.6.1

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╛рд╣! рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рд░рд╛рд╕реНрддрд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдЕрдЧреНрд░рдгреА рд╕реНрд▓реИрд╢ рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред

var request = sendgrid.emptyRequest({
    method: 'POST',
    path: '/v3/mail/send',
    body: mail.toJSON()
});

рдмрдирд╛рдо

var request = sendgrid.emptyRequest({
   method: 'POST',
   path: 'v3/mail/send',
   body: mail.toJSON()
});

рдкрд╣рд▓рд╛ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдЖрдкрдХреЛ рдЬреМрди рдкрд╛рд░реНрд╕ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛ :(

рд╣рдо рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдЖрдкреА рдФрд░ рдЗрд╕ рд▓рд┐рдм рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╡рд┐рд╡рд░рдг рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ? рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд▓реИрд╢ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реАрд╡ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрдХрд╛рд░ @iamgollum ,

рдПрдХ рдореБрджреНрджрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред

рдЗрд╕ рдмреАрдЪ, рд╢рд╛рдпрдж рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛: https://github.com/sendgrid/sendgrid-nodejs/blob/master/USE_CASES.md#transactional_templates

рдзрдиреНрдпрд╡рд╛рдж!

@ рдбрд┐рдпрд╛рдЧреБрд▓реНрд▓рдо ,

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрднреА рднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред рдФрд░ рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд▓реЗрдирджреЗрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╣рдореНрдо, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ: https://github.com/sendgrid/sendgrid-nodejs/issues/347

рдореИрдВ рдЗрд╕реЗ рдПрдХ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрдирд░реНрд╡рд░реНрдЧреАрдХреГрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рджреЗрдЦреВрдВрдЧрд╛ред

@adamsingle ,

рдЗрд╕ рдмреАрдЪ, рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХреЛрдб рдирдореВрдирд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдкреНрд░рдЬрдирди рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж!

@thinkingsouble рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдХреЛрдб рдирдореВрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдЕрдм рдХрд╛рдо рдкрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдлрд┐рд░ рд╕реЗ рджреЗрдЦреВрдВрдЧрд╛ред рдореИрдВ рдкреГрдереНрд╡реА рдХреЗ рдЪреЗрд╣рд░реЗ рд╕реЗ рдЧрд┐рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдБрдЧрддрд╛ рд╣реВрдБ

рдмрд╛рд╣! рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рд░рд╛рд╕реНрддрд╛ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдЕрдЧреНрд░рдгреА рд╕реНрд▓реИрд╢ рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред

var request = sendgrid.emptyRequest({
    method: 'POST',
    path: '/v3/mail/send',
    body: mail.toJSON()
});

рдмрдирд╛рдо

var request = sendgrid.emptyRequest({
   method: 'POST',
   path: 'v3/mail/send',
   body: mail.toJSON()
});

рдкрд╣рд▓рд╛ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдЖрдкрдХреЛ рдЬреМрди рдкрд╛рд░реНрд╕ рддреНрд░реБрдЯрд┐ рджреЗрдЧрд╛ :(

рд╣рдо рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдЖрдкреА рдФрд░ рдЗрд╕ рд▓рд┐рдм рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╡рд┐рд╡рд░рдг рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ? рдпрджрд┐ рд╣рдо рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд▓реИрд╢ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реАрд╡ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@ рдмреАрдмреАрдбреАрд╕реАрдлреЗрд▓реНрдб ,

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЙрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдерд╛ :(

рд╣рдо рдПрдХ рдмреЗрд╣рддрд░ рд╕рд╣рд╛рдпрдХ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЙрди рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдЖрдкрд╕реЗ рдЫрд┐рдкрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдк рдпрд╣рд╛рдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/sendgrid/sendgrid-nodejs/projects

рдзрдиреНрдпрд╡рд╛рдж!

рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВред рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИ!

рдирдпрд╛ рд╕рд╣рд╛рдпрдХ рдпрд╣рд╛рдВ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИ: https://github.com/sendgrid/sendgrid-nodejs/pull/378

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

metalshan picture metalshan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

danielflippance picture danielflippance  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zvone187 picture zvone187  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thinkingserious picture thinkingserious  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

prasoonjalan picture prasoonjalan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ