nodejs node.js express parse.com mailchimp

node.js - nodejs - mailchimp c# api



Use la API de Mailchimp (3)

Me gustaría utilizar la API Mailchimp Node.js en mi aplicación Parse Cloud Hosting para suscribir a un usuario a una lista de correo. Parse no admite NPM pero, dado que la API de Mailchimp no tiene dependencias, pensé que podría copiar el código en mi proyecto. Sin embargo, la API de Mailchimp utiliza el módulo "https" que Parse no admite.

¿Alguien sabe de una forma de evitar esto?


No he podido usar la API de Mailchimp directamente, pero la API REST es bastante fácil de usar.

En main.js , crea una función de nube. Ingrese su clave API y actualice la URL REST para que apunte al centro de datos correcto de Mailchimp ( http://apidocs.mailchimp.com/api/2.0/ )

var mailchimpApiKey = "<<REPLACE_WITH_YOUR_KEY>>"; Parse.Cloud.define("SubscribeUserToMailingList", function(request, response) { if (!request.params || !request.params.email){ response.error("Must supply email address, firstname and lastname to Mailchimp signup"); return; } var mailchimpData = { apikey : mailchimpApiKey, id : request.params.listid, email : { email : request.params.email }, merge_vars : request.params.mergevars } var url = "https://<<REPLACE_WITH_DATA_CENTRE>>.api.mailchimp.com/2.0/lists/subscribe.json"; Parse.Cloud.httpRequest({ method: ''POST'', url: url, body: JSON.stringify(mailchimpData), success: function(httpResponse) { console.log(httpResponse.text); response.success("Successfully subscribed"); }, error: function(httpResponse) { console.error(''Request failed with response code '' + httpResponse.status); console.error(httpResponse.text); response.error(''Mailchimp subscribe failed with response code '' + httpResponse.status); } }); });

Luego, en el código que llama a esta función ... (reemplace su ID de lista)

Parse.Cloud.run("SubscribeUserToMailingList", { listid : "<<REPLACE_WITH_LIST_ID>>", email : email, mergevars : { FNAME : firstName, LNAME : lastName } }) .then(function(success){ console.log("Successfully subscribed"); // ... }, function(error){ console.log("Unable to subscribe"); // ... });


  1. Instala mailchimp en tu proyecto

    npm install mailchimp-api

  2. Desde el controlador del cliente, llame al controlador del servidor con los datos requeridos
    No olvides agregar $http a la parte superior del controlador

    $http({ method : ''POST'', url : ''/mailchimp-users/subscribe'', data : {user:this.name}}). success(function(response) { console.log("hai this is basic test" + response); $scope.send = response.message; }).error(function(response) { $scope.error = response.message; });

  3. En el controlador del servidor Agregue esto al principio de la página

    var MailchimpUser = mongoose.model(''MailchimpUser''), _ = require(''lodash''), mcapi = require(''mailchimp-api''); var apiKey = ''4bf6fb8820c333da4179216c3c2ef8fb-us10''; // Change this to your Key var listID = ''ebbf193760''; var mc = new mcapi.Mailchimp(apiKey, {version: ''2.0''});

    Agregar esta función

    exports.subscribe = function(req, res) { var entry = req.body.user; var mcReq = { apikey: ''4bf6fb8820c333da4179216c3c2ef8fb-us10'', id: ''ebbf193760'', email: {email: entry + ''@gmail.com''}, merge_vars: { FNAME: ''subscriber-first-name'', LNAME: ''subscriber-last-name'' }, ''double_optin'': false, ''send_welcome'': true } // submit subscription request to mail chimp mc.lists.subscribe(mcReq, function(data) { console.log(data); }, function(error) { console.log(error); }); };

  4. Agregue esta ruta a su archivo de ruta

    app.route(''/mailchimp-users/subscribe'') .post(mailchimpUsers.subscribe);


Así es como lo hice funcionar usando MailChimp API v3.0 , el método a continuación admite agregar / actualizar un suscriptor, así como también agregarlo / eliminarlo de un grupo.

Requisito previo: debe obtener un método hash MD5 para convertir el correo electrónico del usuario en un hash.

var jsmd5 = require(''cloud/md5js.js''); // here replace that with your own data center (by looking at your API key). var datacenter = "us13"; var MAILCHIMP_URL = "https://<any_string>:<apikey>@" + datacenter + ".api.mailchimp.com/3.0/"; var MAILCHIMP_LIST_NEWSLETTER_ID = <yourlistId>; Parse.Cloud.define("SubscribeUserToMailingList", function(request, response) { if (!request.params || !request.params.email){ response.error("Must supply email address, firstname and lastname to Mailchimp signup"); return; } var email = request.params.email; var firstName = request.params.firstname; var lastName = request.params.lastname; // this converts the email string into an MD5 hash. // this is Required if you want to use a "PUT" which allows add/update of an entry, compared to the POST that allows only adding a new subscriber. var emailHash = jsmd5.MD5(email); var mailchimpData = { ''email_address'': email, ''status'': "subscribed", ''merge_fields'': { ''FNAME'': firstName, ''LNAME'': lastName }, ''interests'': { "<groupID>": true // optional, if you want to add the user to a "Group". } }; var url = MAILCHIMP_URL + "lists/" + MAILCHIMP_LIST_NEWSLETTER_ID + "/members/" + emailHash; // using a "PUT" allows you to add/update an entry. Parse.Cloud.httpRequest({ method: ''PUT'', url: url, body: JSON.stringify(mailchimpData), success: function(httpResponse) { console.log(httpResponse.text); response.success("Successfully subscribed"); }, error: function(httpResponse) { console.error(''Request failed with response code '' + httpResponse.status); console.error(httpResponse.text); response.error(''Mailchimp subscribe failed with response code '' + httpResponse.status); } }); });