I had a fairly unpleasant day, so it was relaxing to sit down this evening and get back to work on my interface to the Facebook API. I've cleaned up the way the API functions respond; whenever you invoke a method like friends.get, you'll either get the result documented on the API pages, or an error object (as documented there as well). If there's an error at the network level, you'll still get an error object, but it'll be generated by the Smalltalk interface itself.
That gives me a lot more predictability in the code - it's much clearer what will come back when APIs are called. So here's an example call:
connection := Connection withSecretHolder: holder. connection login. connection authGetSession. groups := connection groupsGetByGroups: #() andUID: nil.
That responds with something like this:
That's a collection of Group objects, each of which has a bunch of data stuffed into it. It's getting to the point where I can do real things with this :)