Sendgrid-nodejs: كيفية إجراء الاستبدال في قالب باستخدام node.js

تم إنشاؤها على ٣٠ نوفمبر ٢٠١٦  ·  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 الإصدار: رئيسي (أحدث التزام: [رقم التنفيذ])
  • إصدار Node.js: 4.1.2
question

التعليق الأكثر فائدة

مجرد تحديث تم تغيير عنوان 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 one سؤال سريع ، أحاول استبدال العلامات باستخدام المتغيرات لكنها تستمر في إعطائي: الأخطاء: [{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
{أخطاء: [{رسالة: 'طلب غير صالح' ، الحقل: فارغ ، مساعدة: فارغة}]}
{الخادم: "nginx" ،
التاريخ: "الخميس ، 01 ديسمبر 2016 07:08:51 GMT" ،
"نوع المحتوى": "application / json"،
"طول المحتوى": "63"،
صلة: "ابق على قيد الحياة"}

مرحبًا @ neeraj87 ،

يرجى التحقق من نوع المتغيرات الخاصة بك ، ونوعها يجب أن يكون سلسلة. يرجى أيضًا تغيير مفتاح الاستبدال إلى الاستبدالات .

alperenozlu أنت على حق ، أحد البدائل كان عددًا صحيحًا. حولها إلى سلسلة وهي تعمل.

شكرا للمساعدة.

مرحبا يا شباب!
كيف يمكنني إجراء استبدال بمصفوفة من القيم ، بدلاً من مجرد سلسلة؟

Deniscapp يمكنك قراءة عناصر المصفوفة ، وربطها لتشكيل سلسلة.

@ neeraj87 هذا ما فعلته! لكني كنت أتساءل فقط عما إذا كانوا قد أضافوا هذه الميزة بطريقة ما.
شكرا على الاجابة! :)

Deniscapp عفواً ، لم أكن أعرف ذلك. أعتقد أنه كان في الإصدار الأقدم. ربما يمكن لشخص "رسمي" من SendGrid الإجابة على هذا السؤال.

Deniscapp ، @ neeraj87

من مستندات API:

مجموعة من أزواج المفتاح / القيمة التي تتبع النمط "replace_tag": "القيمة للاستبدال". يُفترض أن تكون جميعها سلاسل. ستنطبق هذه الاستبدالات على النص ومحتوى html في نص بريدك الإلكتروني ، بالإضافة إلى الموضوع ومعلمات الرد.

قد يكون من المفيد أن تسمح المكتبة للمصفوفات ثم نقوم بتسلسلها لتشكيل سلسلة خلف الكواليس.

مجرد تحديث تم تغيير عنوان url أعلاه الذي ذكره thinkingserious قليلاً: https://github.com/sendgrid/sendgrid-nodejs/blob/master/use-cases/transactional-templates.md

شكرا @ vaskort!

لقد قمت بتحديث الرابط في تعليقي الأصلي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات