esme-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hirsch, Richard" <>
Subject AW: Twitter RESTful API
Date Sat, 14 Feb 2009 22:48:04 GMT
Just tried
it works. Twhirl is however asking for /twitter/api/statuses/public_timeline.xml. "API" is
If you add api to the url, twhirl will work as well. #


Von: Hirsch, Richard
Gesendet: Sa 2/14/2009 23:41
Betreff: AW: Twitter RESTful API

Just tried twhirl based on this blog from shoutem (
Example: Use this as your user:

Here are the results from the call - all 404s. I don't know whether the problem is the "api"
in the URL - apachedick [14/Feb/2009:22:39:06 +0000] "GET /twitter/api/account/verify_credentials.xml?
HTTP/1.1" 404 1081 "app:/twhirl.swf" "twhirl/0.9 (Windows; U; Windows XP; de) AdobeAIR/" - apachedick [14/Feb/2009:22:39:07 +0000] "GET /twitter/api/statuses/friends_timeline.xml?count=20
HTTP/1.1" 404 1078 "app:/twhirl.swf" "twhirl/0.9 (Windows; U; Windows XP; de) AdobeAIR/" - apachedick [14/Feb/2009:22:39:08 +0000] "GET /twitter/api/statuses/replies.xml?
HTTP/1.1" 404 1051 "app:/twhirl.swf" "twhirl/0.9 (Windows; U; Windows XP; de) AdobeAIR/" - apachedick [14/Feb/2009:22:39:09 +0000] "GET /twitter/api/direct_messages.xml?
HTTP/1.1" 404 1048 "app:/twhirl.swf" "twhirl/0.9 (Windows; U; Windows XP; de) AdobeAIR/" - apachedick [14/Feb/2009:22:39:10 +0000] "GET /twitter/api/statuses/public_timeline.xml?
HTTP/1.1" 404 1075 "app:/twhirl.swf" "twhirl/0.9 (Windows; U; Windows XP; de) AdobeAIR/"


Von: im Auftrag von Vassil Dichev
Gesendet: Sa 2/14/2009 17:38
Betreff: Twitter RESTful API

Hello everyone,

There's now partial Twitter RESTful API support for ESME in trunk.
Here's what should work at this point:

- user_timeline
- friends_timeline
- public_timeline
- replies: currently same as user_timeline, might redo it to show conversations
- direct_messages: always empty, because we don't have these in ESME
- verify_credentials: necessary for some Twitter clients

All of the methods should automatically support both XML and JSON.
HTTP Basic authentication is used. The URL prefix used for the API is
"twitter" (it might make sense to make this configurable later on).

So, how do we test this? I've tried with two Twitter clients- one
which uses JSON and one which relies on XML. Here's a short

1. TwitterFox is a lightweight client implemented as a Firefox
extension and uses JSON.
Configuration: find your Firefox profile directory, go to
extensions/ and open
nsTwitterNotifier.js for editing. Find the line starting with "const
TWITTER_API_URL" and change the value "" to point
to your ESME host and port, e.g. "http://localhost:8080/twitter/".
Make sure ESME is started, (re)start Firefox.

2. Twhirl is an Adobe AIR client, which uses XML for communicating with Twitter.
Unfortunately I didn't find an easy way to reconfigure where twhirl
should connect (and didn't even try much). To work around the problem
here, two things are necessary:
-modifying the /etc/hosts file to change what resolves to
-using an Apache instance with URL rewriting is the second necessary
part in deceiving twhirl to think it's connecting to I
won't go into details how to do this, since there's the exhaustive
Apache URL Rewriting guide:

Testing twhirl isn't as easy as I'd hoped, I'm open for suggestions
how I can improve it.

Where to next? I'm not an UI guy and I'll be happy if people could
test as many clients as possible and provide feedback and
instructions. I'll gladly help if there are problems.

What are the plans for extending the API? There are still at least as
many API calls we can easily implement:

- update: this is definitely the first one which must be implemented
next- sending a message completes the communication loop
- getting information: show user info or single message, show friends/followers
- adding and removing friends
- updating a profile

Of course, some refactoring is also necessary since there are some
things which could be implemented in a more elegant way.

That's all, sorry for making you wait this long for this feature.
Don't forget, I'm waiting for your comments!

Have fun,

  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message