Home

node-mailchimp 0.8.0 - Now with OAuth2 goodness

node.js, Code 0 Comments

The latest version of node-mailchimp is now available from npm and GitHub. Be sure to update to have fun with the brand new OAuth2 functionality. Yay!

Below you find a rundown on how the OAuth2 process is handled by node-mailchimp along with an example on how to use it.

First of all you have to require and instantiate the module with a couple of parameters. The parameters clientId and clientSecret are required parameters available from MailChimp, a detailed explanation on how to get these can be found in the MailChimp OAuth2 documentation.

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

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);

When instantiating the module a server is automatically set up that listens on HTTP requests from MailChimp. This server needs to be available from the internet at the URI specified by serverUri, more on that later.

We're using OAuth2 as we want the user to allow access to MailChimp without giving his credentials to us so we need to send him to the MailChimp server to authorize there. Using the following method of MailChimpOAuth we receive a special URI to the MailChimp login form the user needs to be redirected to in a browser.

oauth.getAuthorizeUri();

That URI also includes the serverUri specified as a parameter and exactly that’s the URI the user will be redirected to upon successful authorization. The answer from MailChimp to that URI includes a code we need later on. If you additionally specified the parameter redirectUri the user is redirected to that page in the browser so he doesn't see a blank page.

The code received is now used to request an access token from MailChimp which in turn is used to get some additional metadata for our connection. All of that happens automagically, though, you don't have to do anything except listening for an authed event issued by MailChimpOAuth once everything is finished.

oauth.on('authed', function (apiKey) {
});

As you can see the event receives the parameter apiKey which you can pass on to other API functionality. That API key isn't really an API key to be quite honest, MailChimp is treating the access token similar to an API key, as explained in their API docs, though.

That's it! Having the API key you can now do whatever you want with the API, for example reading a list of the last 25 campaigns like follows.

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

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!
    });

});

One more thing: It makes sense listening on the error event of MailChimpOAuth as well so you're hopefully able to tell what went wrong, if something goes wrong.

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

Any feedback is much appreciated as version 1.0 is getting closer and I want a solid wrapper by then that not only implements all functionality available in the MailChimp API (it does that already) but is also a breeze to work with.

Hell

Movies 0 Comments
Hell

Die Sneakpreview in Münster war gestern Hell, ein deutscher Endzeitfilm, was dem Titel immerhin schon mal eine schöne Doppeldeutigkeit verleiht. Das Setting ist interessant, die Stimmung des Films kommt gut rüber und die Charaktere sind glaubhaft dargestellt, insgesamt aber trotzdem nur ein eher durchschnittlicher Film. Irgendwie plätschert die Geschichte so vor sich hin und es kam nie wirklich Spannung auf. Man hätte glaube ich ganz gut dabei dösen können, wenn es nicht die ganze Zeit so hell gewesen wäre, um im Wortwitzkeller zu bleiben.

Erbarmen von Jussi Adler-Olsen

Books 0 Comments
Erbarmen von Jussi Adler-Olsen

Erbarmen ist eine ganz ordentliche Geschichte aber irgendwie auch ein wenig zu vorhersehbar und unaufgeregt. Die Hauptfiguren sind leider auch nicht so kaputt und interessant wie z.B. von Jo Nesbø gewöhnt. Habe auf jeden Fall gerade noch mal den nächsten Teil der Reihe gekauft, schlecht ist das Buch nämlich nicht.

Das Parteibuch von Martin Sonneborn

Books 0 Comments
Das Parteibuch von Martin Sonneborn

Tränen habe ich gelacht. Ein absolut geniales Buch in dem Martin Sonneborn zwischen zwei billigen Pappdeckeln erklärt, wie er, mit der von ihm gegründeten Partei Die PARTEI, die Macht in Deutschland übernimmt. Ein Buch voller knallharter, politischer Insiderfakten und Satire par excellence. Kaufbefehl!