Joind.in's API
London, UK
Friday, February 12th 2010, 22:27 GMT
I speak at many conferences and more and more of those conferences are using a service called joind.in. The joind.in website allows attendees of conferences to leave feedback for the speakers, organisers and sponsors. For me as a speaker this feedback by attendees is very important (as long as the comments are constructive). I use those comments to tweak and improve my presentations if I give them at a later moment.
The joind.in website also provides an API that allows you to talk to the service from other applications and sites. I've now integrated this in my site (at the talks page). It uses JQuery's ajax functionality to talk to the backend which queries (and caches) the joind.in API requests. In order to make API calls, you need to make POST requests to a specific URL. The URL depends on what type of object you want to use. For example, there is http://joind.in/api/talk for requesting information about talks, and http://joind.in/api/user for fetching information about users.
Requests can be either made in XML, or with JSON. A simple example to request all comments for a specific talk can be done with something like:
The do_post_request() code I lifted from Wez' page, and looks like:
array(
'method' => 'POST',
'content' => $data
)
);
if ( $optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create( $params );
$fp = fopen( $url, 'rb', false, $ctx );
$response = stream_get_contents( $fp );
return $response;
}
?>
I am also fetching the full name for each user. Because this could mean that I have to do a lot of requests I am caching them with eZ Components' Cache component.
You can see the code operational on the talks page, by clicking on the little joind.in logo after each talk that is on the site. If JavaScript is disabled, the logo turns into a link that takes you to the joind.in site with all the comments.