MiroHibler / meteor-mailchimp

A Meteor wrapper for the MailChimp API
http://mailchimp.meteor.com
77 stars 28 forks source link

miro:mailchimp

A Meteor wrapper for the MailChimp API.

See also these wrappers:

Dependencies

TL;DR;

miro:mailchimp provides MailChimp API v2.0 (v3.0 not ready yet!) features to your Meteor application.

Installation

Install using Meteor:

meteor add miro:mailchimp

Quick Start

NOTE: starting with v1.1.0 the template MailChimpListSubscribe is NOT included in the package anymore BUT the template helpers and event handlers ARE! In other words, you can copy the old template from the example folder within the package or copy it from here,...

<!-- Bootstrap example -->
<template name="MailChimpListSubscribe">
    <form class="form-inline">
    {{#if message}}
        <p class="mailchimp-message">{{{message}}}</p>
    {{/if}}
        <div class="form-group">
            <input class="mailchimp-email form-control" type="email" placeholder="email@example.com"/>
            <input type="submit" value="Subscribe" class="mailchimp-subscribe btn btn-success" />
        </div>
    </form>
</template>

...include it in your code and customize it as you wish; it will be inherently functional as long as its name remains MailChimpListSubscribe and it contains all template expressions and CSS classes (apart from bootstrap ones, of course) as the original example has.

Include it in some other template as needed:

<div id="subscribeForm">
    {{> MailChimpListSubscribe}}
</div>

Finally, put in your server's settings.json:

{
    "private": {
        "MailChimp": {
            "apiKey": "<Your MailChimp API Key>",
            "listId": "<ID of your default mailing list>"
        }
    }
}

and start your server with:

meteor --settings=settings.json

API

MailChimp 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 option:

All of the API categories and methods described in the MailChimp API v2.0 Documentation are available in this wrapper both server- and client-side.

To use them, the method call is used which takes four parameters:

NOTE: If callback is ommited server-side, the method runs "synchronously" via Meteor.wrapAsync method.

Examples

Callback, server-side/client-side

// You can as well pass different parameters on each call
var mailChimp = new MailChimp( /* apiKey, { version: '2.0' } */ );

mailChimp.call( 'campaigns', 'list', {
        start: 0,
        limit: 25
    },
    // Callback beauty in action
    function ( error, result ) {
        if ( error ) {
            console.error( '[MailChimp][Campaigns][List] Error: %o', error );
        } else {
            // Do something with your data!
            console.info( '[MailChimp][Campaigns][List]: %o', result );
        }
    }
);

wrapAsync, server-side ONLY

// You can as well pass different parameters on each call
var mailChimp = new MailChimp( /* apiKey, { version: '2.0' } */ );

var result = mailChimp.call( 'campaigns', 'list', {
    start: 0,
    limit: 25
});

// Do something with your data!
console.info( '[MailChimp][Campaigns][List]: %o', result );

Changelog

v1.1.0

v1.0.4

v1.0.3

v1.0.2

v1.0.1

v1.0.0

v0.4.2

v0.4.1

v0.4.0

v0.3.0

v0.2.0

v0.1.0

Copyright and license

Copyright © 2014-1015 Miroslav Hibler

miro:mailchimp is licensed under the MIT license.