I'm into about my fourth hour or so of debugging why all the crossposting functionality broke for Tabulas over the past few weeks.

Xanga, which lacks a real API, broke cause they renamed the location of their editor. I updated the screen-scraping application so this worked again on my unit tests.

Wordpress was an easier fix - some reason I had a bug in my code which was overwriting the XML-RPC path.

Now ... (deep breath) ... the Blogger problem makes me want to blow my brains out (literally).

First, I find out that their XML-RPC interface is gone. Flat-out ... gone. As in, doesn't even resolve a proper HTTP response. Awesome. I don't care if we had big fat warnings about its experimental status - once a community starts springing up around the API, the site needs to support that API.

I don't want to get too much into an engineering pissfest, but is it that hard for some Google employees to maintain the old API? I mean, it's like ... 6 methods. Given that tons of old applications are built on top of it, it seems it might be nice to spend a little time for backwards compatibility.

So after bitching and moaning to myself about this, I finally started diving into the documentation for Blogger API. Being lazy, I just googled for a Blogger Atom API PHP library and decided to see if I could hack together something that worked.

I set-it up ... and ... "Authentication against the AtomAPI endpoint failed. Please check your username/password."

Apparently I had to switch my Blogger account to their "new" system using my Google single sign-on. No problem.

But I was still getting the error. Was I supposed to use my old Blogger username/password for the Atom auth? My Google account? Both failed. Sigh, time to search the Blogger Google Groups. The response:

"Sounds like you're trying to use an outdated client. Blogger's Atom 0.3 endpoint is no longer operational."

Are you serious? So after they trashed the XML-RPC interface, they trashed the Atom 0.3 API endpoint?

OK, so maybe I need to write my client from scratch. Hopefully their expansive documentation will let me copy/paste something so I can just play around with the goddamn thing. From Google's documentation: "This document provides detailed examples for using the Zend Google data Client Library to work with Blogger."

Awesome! So not only do I need to learn a whole new API from scratch, but I also get to learn a whole new PHP framework just to add a "hello world" post to my Blogger.

At this point, I'm pretty sure their API endpoint is https://blogger.com/atom/, but the damn thing is returning a 404, so I don't even know. Am I supposed to autodiscover based on meta tags from my main Blogger account?

So amusingly enough, what (in theory) should be the easiest API to support is quickly turning out to be the most difficult.

It'd be really nice if Google respected APIs and kept them up, and didn't force developers to keep changing code at Google's whim - this is exactly the type of arrogance that makes me dislike Google.

Posted by roy on November 27, 2007 at 02:28 AM in Ramblings, Web Development, Tabulas | 5 Comments

Related Entries

Want to comment with Tabulas?. Please login.

Comment posted on November 2nd, 2008 at 09:51 PM
hi, im trying to crosspost to my blogger account and it is always failing,would you know what's the problem could be? thanks!
Comment posted on February 27th, 2008 at 06:24 AM
Hey Roy, I totally love Tabulas, but I can't actively post in my account because I've been hoping I can crosspost to my Blogger account too. :( Now I see why the crossposting function to Blogger isn't working. Give me a heads up if Google's not giving you a hard time! :)

Jeff S (guest)

Comment posted on December 20th, 2007 at 05:48 PM
Apologies Roy, I know the API changes have been frustrating. The latest API is the Google Data style API and we're trying to do better at keeping backwards compatibility going forward. You don't really need to use the PHP library and learn a new framework if you don't want to. The protocol itself is fairly straightforward. You might be interested in the protocol guide which explains how to interact with Blogger without using a library. We also have a discussion group which I'm active in, so let me know if I can help :)

http://code.google.com/apis/blogger/developers_guide_protocol.html
http://groups.google.com/group/bloggerDev/
http://code.google.com/support/bin/answer.py?answer=78451
Comment posted on November 27th, 2007 at 10:58 PM
passing it on to the blogger team ;)
Comment posted on November 27th, 2007 at 07:03 AM
Linda... Get on it!