Skip to content

Latest commit

 

History

History
212 lines (144 loc) · 9.08 KB

README.md

File metadata and controls

212 lines (144 loc) · 9.08 KB

node-mailchimp

A node.js wrapper for the MailChimp API.

node-mailchimp exposes the following features of the MailChimp API to your node.js application:

  • MailChimp API (Versions 1.3, 1.2 and 1.1)
  • MailChimp Export API (Version 1.0)
  • MailChimp Webhooks
  • MailChimp STS API (Version 1.0)
  • MailChimp OAuth2 authorization

Further information on the MailChimp API and its features is available at http://apidocs.mailchimp.com

Installation

Installing using npm (node package manager):

npm install mailchimp

If you don't have npm installed or don't want to use it:

cd ~/.node_libraries
git clone git://github.com/gomfunkel/node-mailchimp.git mailchimp

Please note that parts of node-mailchimp depend on request by Mikeal Rogers. This library needs to be installed for the API and Export API to work. If you are using npm this dependency should be automagically resolved for you.

Usage

Information on how to use the MailChimp APIs can be found below. Further information on the API methods available can be found at http://apidocs.mailchimp.com. You can also find further information on how to obtain an API key, how to set up Webhooks and/or OAuth2 in your MailChimp account and much more on the MailChimp API pages.

MailChimp API

MailChimpAPI takes two arguments. The first argument is your API key, which you can find in your MailChimp Account. The second argument is an options object which can contain the following options:

  • version The API version to use (1.1, 1.2 or 1.3). Defaults to 1.3.
  • secure Whether or not to use secure connections over HTTPS (true/false). Defaults to false.

The callback function for each API method gets one argument, an object with all information retrieved or an error message if an error occurred.

Example:

var MailChimpAPI = require('mailchimp').MailChimpAPI;

var apiKey = 'Your MailChimp API Key';

try { 
    var api = new MailChimpAPI(apiKey, { version : '1.3', secure : false });
} catch (error) {
    console.log('Error: ' + error);
}

api.campaigns({ start: 0, limit: 25 }, function (data) {
    if (data.error)
        console.log('Error: '+data.error+' ('+data.code+')');
    else
        console.log(JSON.stringify(data)); // Do something with your data!
});

api.campaignStats({ cid : '/* CAMPAIGN ID */' }, function (data) {
    if (data.error)
        console.log('Error: '+data.error+' ('+data.code+')');
    else
        console.log(JSON.stringify(data)); // Do something with your data!
});

MailChimp Export API

MailChimpExportAPI takes two arguments. The first argument is your API key, which you can find in your MailChimp Account. The second argument is an options object which can contain the following options:

  • version The Export API version to use, currently on 1.0 is available and supported. Defaults to 1.0.
  • secure Whether or not to use secure connections over HTTPS (true/false). Defaults to false.

The callback function for the only Export API method at the moment (list) gets one argument, an object with all information retrieved or an error message if an error occurred.

Example:

var MailChimpExportAPI = require('mailchimp').MailChimpExportAPI;

var apiKey = 'Your MailChimp API Key';

try { 
    var exportApi = new MailChimpExportAPI(apiKey, { version : '1.0', secure: false });
} catch (error) {
    console.log('Error: ' + error);
}

exportApi.list({ id : '/* LIST ID */'  }, function (data) {
    if (data.error)
        console.log('Error: '+data.error+' ('+data.code+')');
    else
        console.log(data); // Do something with your data!
});

MailChimp Webhooks

MailChimpWebhook takes one argument, an options object which can contain the following options:

  • port The port the server is going to listen on. Defaults to 8100.
  • secret Secret key as suggested on the Webhook page which is then simply added as a pathname to the Webhook URL in your MailChimp account and checked for. Nothing too fancy but a small enhancement to security. Leave empty (default setting) if you don't want to use a secret key. Example: If you set the secret to 'ChimpSecret' you need to enter the Webhook URL http://www.yourdomain.com/ChimpSecret in the MailChimp Webhook settings.
  • secure Credentials as generated by the crypto module. If present HTTPS support is enabled for the server. Defaults to false.

You can register the following events. The callback function for each of these events receive two arguments. The first argument is an object with the information retrieved, the second argument contains metadata like when the event occurred.

  • subscribe Emitted when someone subscribes to your list.
  • unsubscribe Emitted when someone unsubscribes from your list.
  • profile Emitted when someone updates his profile.
  • upemail Emitted when someone changes his email address. Please note that you will receive a profile event at the same time.
  • cleaned Emitted when an email address is cleaned from you list.

Example:

var MailChimpWebhook = require('mailchimp').MailChimpWebhook;

var webhook = new MailChimpWebhook();

webhook.on('error', function (message) {
    console.log('Error: '+message);
});

webhook.on('subscribe', function (data, meta) {
    console.log(data.email+' subscribed to your newsletter!'); // Do something with your data!
});

webhook.on('unsubscribe', function (data, meta) {
    console.log(data.email+' unsubscribed from your newsletter!'); // Do something with your data!
});

MailChimp STS API

MailChimpSTSAPI takes two arguments. The first argument is your API key, which you can find in your MailChimp Account. The second argument is an options object which can contain the following options:

  • version The STS API version to use, currently on 1.0 is available and supported. Defaults to 1.0.
  • secure Whether or not to use secure connections over HTTPS (true/false). Defaults to false.

The callback function for each API method gets one argument, an object with all information retrieved or an error message if an error occurred.

Example:

var MailChimpSTSAPI = require('mailchimp').MailChimpSTSAPI;

var apiKey = 'Your MailChimp API Key';

try { 
    var stsApi = new MailChimpSTSAPI(apiKey, { version : '1.0', secure: false });
} catch (error) {
    console.log('Error: ' + error);
}

stsApi.VerifyEmailAdress({ email : '/* E-MAIL ADDRESS */'  }, function (data) {
    if (data.error)
        console.log('Error: '+data.error+' ('+data.code+')');
    else
        console.log(data); // Do something with your data!
});

MailChimp OAuth2

MailChimpOAuth takes one argument, an options object which can contain the following options:

  • clientId The clientId can be obtained from MailChimp, please refer to the API docs on how to do this. The clientId is a required parameter.
  • clientSecret The clientSecret can be obtained from MailChimp, please refer to the API docs on how to do this. The clientSecret is a required parameter.
  • serverUri The URI to reach this server from the internet. This URI is required as MailChimp sends a request upon successful authorization of a user.
  • redirectUri After a successful authorization on the MailChimp website the user is redirected to this URI, if any.
  • port The port the server is going to listen on. Defaults to 8100.
  • secure Credentials as generated by the crypto module. If present HTTPS support is enabled for the server. Defaults to false.

You can register the following events:

  • error This event is emitted when an error occured and receives one argument that contains the error message.
  • authed Emitted when the OAuth was completed successfully. Receives one argument which represents the API key that can be passed on to other API functionality.

Example:

var MailChimpOAuth = require('mailchimp').MailChimpOAuth;
var MailChimpAPI = require('mailchimp').MailChimpAPI;

var options = {
	clientId: 'Your MailChimp client id',
	clientSecret: 'Your MailChimp client secret',
	serverUri: 'http://www.example.com',
	redirectUri: 'http://www.example.com/successfulLogin.html'
};

var oauth = new MailChimpOAuth(options);

console.log(oauth.getAuthorizeUri()); // The MailChimp login URI the user needs to be sent to

oauth.on('error', function (message) {
    console.log('Error: '+message);
});

oauth.on('authed', function (apiKey) {
	
	try { 
	    var api = new MailChimpAPI(apiKey, { version : '1.3', secure : false });
	} catch (error) {
	    console.log('Error: ' + error);
	}
	
    api.campaigns({ start: 0, limit: 25 }, function (data) {
        if (data.error)
            console.log('Error: '+data.error+' ('+data.code+')');
        else
            console.log(JSON.stringify(data)); // Do something with your data!
    });
	
});

License

node-mailchimp is licensed under the MIT License. (See LICENSE)