Meetup API Client v1.0.0

  • PHP
  • March 29, 2013

I love APIs, but I honestly hate having to deal with signing, auth, and curl inside my controllers or services, which means I end up wrapping all of that into something that provides easy access in my controllers. I also love Meetup.com since it really makes managing User Groups pretty cool, even with some bad UI choices, which is exactly where their API comes in, it allows me to provide a decent interface to their features from my own UG page and do all the communication via API.

I was curious about the Guzzle library and how many people mentioned it would make API wrapper so much simpler, so I decided to put all of those together and write my own wrapper that would have complete support for the API (other wrappers only had read-only).

It was a simple process, I prepared 2 basic clients to deal with the auth options available: key auth and OAuth. This was pretty simple with the use of Plugins and the existing OAuth plugin. Next up I tackled the operation definitions, for which i ended up with a screen scraper that would get me most of the information from the Meetup.com Docs, and tweak it from there.

Once the definitions were done I started testing out my use cases and realized that always having to read the ‘results’ item of the response array was tiresome and led to useless code, so I wrote a few custom responses that allow me to directly iterate or access the data with array access and iterators. This proved to be useful and my use cases became much more simpler on the consumption side.

To this I also added a ‘__call’ method that can call any operation and generated proper phpDoc for each method so that IDE’s can easily provide autocomplete for this.

This is a sample of it in action:

 <?php

$client = MeetupKeyAuthClient::factory(array('key' => 'my-meetup-key'));

// Use our \_\_call method (auto-complete provided) $response = $client->getRSVPs(array('event\_id' => 'the-event-id'));

foreach ($response as $responseItem) { echo $responseItem\['member'\]\['name'\] . PHP\_EOL; }

This has been very useful for AmsterdamPHP since we use the Meetup API heavily and I hope its also useful to more people using that API, installation is also pretty simple since it supports composer, and a Symfony Bundle is in the works. If you want more details go check out the github repository and its README file. Or check it out on Packagist.

comments powered by Disqus

Related Posts

PHPSPCast: Uma nova iniciativa

PHPSPCast: Uma nova iniciativa

  • April 2, 2009

PHPSPCastDesde que me mudei para São Paulo minha participação na comunidade PHP em geral esta cada vez mais emocionante. Desde que conversei com alguns amigos e decidimos organizar o PHPSP (Grupo de Desenvolvedores PHP de São Paulo) as ídeias não param de surgir, e muitas ideias já estão virando fatos concretos.

Read More
2007 e Férias!

2007 e Férias!

  • December 30, 2006

2006 esta no final, 2007 esta vindo. Muitos blogs fizeram previsões e refletiram sobre o ano que passou, mas eu não vou entrar muito nisso. Este ano para mim na verdade marcou o início da vida blogista, parece ontem, mas já temos ai 6 meses de blog, muitas visitas e comentários. Alguns meses foram surpreendentes, como quando fui parar na capa do Digg e vi o poder do “social”, digamos que tive que mudar de hospedagem pra dar conta de tudo que venho.

Read More
Indignação! (Atenção! cunho político)

Indignação! (Atenção! cunho político)

  • December 16, 2006

É impossível acompanhar as noticias no final do dia e não se indignar. Me pergunto, até onde isso vai?

Read More