Working with the Upcoming API

Yoan BlancSun, 14 Jan 2007, , , ,

I managed to put some extra functionalities to the admin area of the Bikini Test. Now they can directly published their events to Upcoming.org (that belongs to Y!).

There is two (not sexy) screenshots of it, it’s a little bit of Ajax and some glue code.

An sample code of how this works (I’ve wrote some classes in PHP4 for this purpose). You can read before the Token-based Authentication of the Upcoming API.

<?php # -*- coding: utf8 -*-
// http://upcoming.org/services/api/keygen.php
$api_key = '##########';
// http://upcoming.org/services/auth/?api_key=<API_KEY>
$frob = '###.....###';

include(dirname(__FILE__).'/upcoming.lib.php');
$upcoming =& new Upcoming($api_key, $frob);
$upcoming->authGetToken();
?>
<h1>Agenda</h1>
<dl>
<?php
// Bikini Test
$venue =& new Venue();
$venue->id = 37518;
// an adapted event.search
$events = $upcoming->eventSearchByVenue($venue);
foreach($events as $event) {
?>
  <dt>
    <a href="<?= $event->url ?>">
      <?= $event->name; ?>
    </a>
  </dt>
  <dd>
    <?= $event->description; ?>
  </dd>
<?php
}
?>
</dl>

This will show the events of the Bikini Test Venue. It’s really easy and powerful. The library isn’t complete enough to decently authorize me to publish it here and now. If you are interested by it, contact me.

The API was painful and sometimes buggy but I think that in a couple of month it gonna be strong enough to avoid the strange behaviours I’ve met. So, “Is Upcoming ready for you?” The answer is no if you have business in mind, not yet, but yes if it’s for the fun.

J’ai offert à la sompteuse interface d’administration du Bikini Test la possibilité de publier des évènements sur Upcoming, directement.

Comme vous pouvez le voir dans le code d’exemple ci-dessous (à gauche), il est assez simple de jouer avec ça. Le système communique grâce à l’API du service qui permet de faire des recherches, de gèrer ses évènements, etc. C’est une API se basant sur l’architecture REST via HTTP, donc qui ne demande pas de connaissances de XML-RPC ou SOAP (par exemple). Les réponses sont fournies dans un format XML, se lisant avec un parseur ou, comme je l’ai fait rapidement, des expressions régulières.

Attention c’est service qui ne doit pas être utilisé dans un but lucratif et il souffre encore, d’une certaine jeunesse. J’ai été confronté a des problème avec la gestion des tags qui semble leur en poser également. N’hésitez pas à me contacter si vous êtes désireux de jouer avec cette librairie, elle est hélas un peu trop rudimentaire pour que j’ose décemment la publier ici.