aslj: (Default)
aslj ([personal profile] aslj) wrote in [site community profile] dw_dev2009-10-20 03:28 pm
Entry tags:

XML-RPC interface issue

(Of the official journals, this looked like the most appropriate place to post this.)

Dreamwidth's XML-RPC interface is returning some results that I would call broken. On both 'login' and 'getfriendgroups' calls, it returns empty lists rather than a list of custom access filter groups (which is what I would expect) or some combination of those and custom reading filter groups (which I would think is inappropriate given that clients are intended for posting and not for reading). The end result is that custom-group entry security is unusable (no groups from which to choose) in any client that implements the XML-RPC protocol as specified in the LiveJournal docs.
mark: A photo of Mark kneeling on top of the Taal Volcano in the Philippines. It was a long hike. (Default)

[staff profile] mark 2009-10-21 06:02 am (UTC)(link)
I really think #1 is a bad idea -- I used to be a client developer (I wrote LochJournal), and I know that if LJ were to suddenly start spitting out 64 bit groups there'd be some bad problems with most clients. Not to mention, my client did some other things with those friend groups like give the users URLs to go filter their friends page. All of those features would just be broken and the client developer would have to special case Dreamwidth anyway.

When I was working on the client, I had to special case some sites anyway. DeadJournal was always on old code, sites would come and go, it's sort of the name of the game... if you build a client application, you sort of have to deal with changes that come down the pipe no matter who they come from. Well, I did, as I wanted to try please as many of my users as possible. Can't always do that, but eh.

Philosophically, LJ has traditionally forged its own path. That was fine back in 1999 when nobody else was really doing these things on the Internet, but nowadays there are actual standards for blogs and clients. The Atom standard, mainly, and I would rather put the time and effort into supporting that than go back and try to retrofit or jury rig these special modes that LJ based sites support that nobody else does.

I want Dreamwidth to move in that direction: to support the standards that other sites like WordPress, Blogger, and TypePad are using. If we can be compatible with those clients, we'll be in a much better position than trying to be compatible only with our little microcosm.

None of which is really going to make things better for you this very minute, of course.

Brainstorming, though...

What if the login mode returned a tuple 'dwmode=1'? Then, you could know that there are no friendgroups and that this site (whether it is us or someone using our code) is using the Dreamwidth protocol.

Further, if that's acceptable, would you be willing to implement a second call out to 'gettrustgroups' or some method that is actually specific to what we do? It should be pretty simple for your client to do, just a different method, same looking results.

If you're willing to implement and support this in your client, I'll go hack it up right now and have it out next code push. I can't promise it will be pretty code on my end, but it will work. ;)