使用Mailchimp API

Ian*_*Ian 4 node.js mailchimp express parse-platform

我想在我的Parse Cloud Hosting应用程序中使用Mailchimp Node.js API来订阅用户到邮件列表.Parse不支持NPM,但鉴于Mailchimp API没有依赖关系,我认为我可以将代码复制到我的项目中.但是,Mailchimp API使用Parse不支持的"https"模块.

有没有人知道这方面的方法?

Ian*_*Ian 7

我一直无法直接使用Mailchimp API,但REST API非常易于使用.

main.js中,创建一个云函数.输入您的API密钥并更新REST URL以指向正确的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);
    }
  });

});
Run Code Online (Sandbox Code Playgroud)

然后,在调用此函数的代码中...(替换您的列表ID)

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");
    // ...
});
Run Code Online (Sandbox Code Playgroud)


小智 5

  1. 在您的项目中安装 mailchimp

    npm install mailchimp-api
    
    Run Code Online (Sandbox Code Playgroud)
  2. 从客户端控制器调用具有所需数据的服务器控制器
    不要忘记添加$http到控制器的顶部

    $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;
    });
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在服务器控制器中将其添加到页面的开头

    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'});
    
    Run Code Online (Sandbox Code Playgroud)

    添加此功能

    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);
        });
    };
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将此路线添加到您的路线文件中

    app.route('/mailchimp-users/subscribe')
       .post(mailchimpUsers.subscribe);
    
    Run Code Online (Sandbox Code Playgroud)