Setelah mengirimkan email template menggunakan utilitas pembantu email SendGrid. Respons server dari SendGrid's API mengembalikan JSON yang tidak valid menurut pembungkus ini (sendgrid-nodejs).
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)
Baris 110 adalah:
//Use callback
self.client.API(request, function(response) {
response.body = response.body ? JSON.parse(response.body) : response.body;
Contoh:
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;
})();
Anda bahkan dapat membuat tes mocha, saya menjalankan ini dari lingkungan pengujian ini:
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);
});
});
});
Fungsi sendEmail berisi penyiapan POST V3 normal untuk memanggil API seperti yang dijelaskan dalam dokumen.
Halo @iamgollum ,
Terima kasih telah meluangkan waktu untuk mengirimkan masalah! Saya telah menambahkan ini ke backlog kami untuk ditinjau.
Sementara itu, mungkin ini akan membantu: https://github.com/sendgrid/sendgrid-nodejs/blob/master/USE_CASES.md#transactional_templates
Terima kasih!
@bayu_joo
Apakah Anda masih mengalami masalah?
Saya mengalami masalah ini. Dan saya menggunakan template transaksional seperti pada link yang Anda posting.
Hmm, saya pikir masalah ini terkait: https://github.com/sendgrid/sendgrid-nodejs/issues/347
Saya mengklasifikasikan ulang yang ini sebagai bug dan akan memeriksanya bersama.
@adamsing
Sementara itu, apakah Anda memiliki contoh kode yang dapat kami gunakan untuk membantu mereproduksi? Terima kasih!
@thinkingserious Saya akan mencoba dan memberikan contoh kode akhir pekan ini. Saya kembali ke sendgrid sekarang di tempat kerja dan akan mengunjungi kembali semuanya. Saya minta maaf karena jatuh dari muka bumi
Bah! Telah mendapatkan masalah ini selama beberapa jam. Ternyata jalur tersebut peka terhadap garis miring di depan.
var request = sendgrid.emptyRequest({
method: 'POST',
path: '/v3/mail/send',
body: mail.toJSON()
});
vs.
var request = sendgrid.emptyRequest({
method: 'POST',
path: 'v3/mail/send',
body: mail.toJSON()
});
Cuplikan pertama berfungsi, sedangkan cuplikan kedua akan memberi Anda kesalahan parse json :(
Kami sudah lama menjadi pelanggan sendgrid, tetapi baru saja mulai bermain-main dengan api dan lib ini. Mungkin detail ini terdokumentasi dengan baik dan saya telah mengabaikannya? Alangkah baiknya jika lib secara otomatis memberi awalan garis miring jika kita menghilangkannya.
@bayu_joo
Maaf Anda harus berurusan dengan itu :(
Kami sedang mengerjakan penolong yang lebih baik yang menyembunyikan semua detail itu dari Anda. Anda tidak perlu peduli dengan parameter apa pun.
Anda dapat mengikuti proyek ini di sini: https://github.com/sendgrid/sendgrid-nodejs/projects
Terima kasih!
Jangan khawatir. Kami menyukai layanan ini!
Helper baru sedang dalam pengembangan di sini: https://github.com/sendgrid/sendgrid-nodejs/pull/378
Komentar yang paling membantu
Bah! Telah mendapatkan masalah ini selama beberapa jam. Ternyata jalur tersebut peka terhadap garis miring di depan.
vs.
Cuplikan pertama berfungsi, sedangkan cuplikan kedua akan memberi Anda kesalahan parse json :(
Kami sudah lama menjadi pelanggan sendgrid, tetapi baru saja mulai bermain-main dengan api dan lib ini. Mungkin detail ini terdokumentasi dengan baik dan saya telah mengabaikannya? Alangkah baiknya jika lib secara otomatis memberi awalan garis miring jika kita menghilangkannya.