node-mailchimp 0.8.0 - Now with OAuth2 goodness
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
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.
The Gun Seller von Hugh Laurie
Hugh Laurie spielt nicht nur einen grandiosen Dr. House sondern hat auch einen äußerst humorvollen Schreibstil. Die Story von The Gun Seller ist aber recht flach, ohne wirklichen Spannungsbogen, und kommt eher wie ein mittelmäßiger Actionfilm rüber. Ingesamt ganz nett, kann man mal lesen, muss man aber nicht.
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
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!