Monday, October 10, 2011

Project Genesis: Report 4

Really busy week. A lot of new stuff. The API is in place, a connection for sharing (and listening) has been made to Facebook and asynchronous communication is in place.

Last week
Last week I finished the API calls. It is now possible to create, read, update and delete devices, configurations, songs, artists, albums and playlists. All actions are available both as a normal HTML pages and as JSON, XML and YAML over OAuth signed requests in true RESTful style.

I've also worked with Mark in looking into getting a connection up to Facebook. Mark did some really great work in getting Stoffi Music Player connected to our new cloud services and we have managed to get sharing up and running. Mark also put in code to share playlists and submit the listening of songs. I had some trouble implementing this in our cloud system, more about that in "Challenges".

Furthermore, I've managed to get an asynchronous communication working on the website. It is implemented for the device page. If you create a device and show it in your browser and then open another browser and change either the name or the version of the device, it will automatically be changed in the first browser. No need to hit F5!

The two features that Mark implemented in Stoffi - sharing of playlists and submission of the listening to songs - will have to be pushed into the next release.

Playlists require us to put some more thought into how one will be able to listen to playlists, both with Stoffi installed and without.

The listening of songs is implemented all the way to our server but the Facebook API is just a few weeks old (it was announced at this year's F8). Their API is full of bugs and our calls to the API results in 401. However, making the very same call with the same parameters using Facebook's own Graph API Explorer does submit the listening of a song to the users Facebook profile, but the response is an OAuthException with the message "An unknown error has occured". We will have to wait for Facebook to work these things out and for their new API to stabilize.

This week
This week I will be busy studying for exams next Monday so I don't plan on actually doing any work on Stoffi.