Tonight, some issues were worked out that had been the source of a small bit of frustration. As is usually the case, the “issue” was not much of an issue at all, but more of a simple oversight in the code. Some times it really does help to step away from the code for a while and comb through it again with a clear head. Now, with that out of the way, new methods have been added to TwitterPatter adding the ability to grab and display the Friends Status Messages and Direct Messages.

There is still the matter of the User Timeline authentication failing and I am stumped as to why! The credentials are the same for other authenticated timelines, and this is the only one that seems to fail when tested.

Overall, the application is still very raw and in need of a make-over, but that will come after the main functionality is in place and the code is cleaned up a bit. In other words… Yea, it’s ugly!! (for now)


I’m sure you’ve heard this before, but I have Good news and I have Bad news.

First the bad news. For the last couple weeks, I have been scratching my head over the fact that twitter authentication failed and returned a “401 unauthorized” HTTP response any time I used TwitterPatter to retrieve the “user_timeline” from the twitter service.

I wrote code and rewrote it again trying to figure out how to get this to work. No matter what I tried, I just couldn’t seem to do it. Now after two weeks of failure (keep in mind that I do this mostly over the weekends and at night with what little free time I have to spare) , I was a bit frustrated. After all, that could have been quality time well spent pwning COD4 noobs (call of duty 4). At this point I decided to try a few of the other status time lines that require authentication to see if I could uncover anything. Here is where the Good news starts.

What I discovered was that apparently all the other time lines that require authentication are working fine using the same piece of code that fails for the user time line. I have no idea why this is happening and to be honest, it doesn’t make much sense to me. The credentials are all the same, the HTTP request is the same. But for some reason, the user time line just will NOT authenticate. Anyway, back to the good news. At this point I have been able to successfully retrieve the following time lines as an authenticated twitter account user.

  • friends_timeline : Returns the 20 most recent statuses posted in the last 24 hours from the authenticating user and that user’s friends. It’s also possible to request another user’s friends_timeline via the id parameter below.
  • friends : Returns up to 100 of the authenticating user’s friends who have most recently updated, each with current status inline. It’s also possible to request another user’s recent friends list via the id parameter below.
  • followers : Returns the authenticating user’s followers, each with current status inline

Next step is to format the data that is returned for display in the application window and apply the interactive functions to each message. I also need to find out why that user_timeline authentication fails.

If anyone has any ideas on what is going wrong with that, please leave a comment.

Happy twittering
Ed (@pixel8r)

Last Night, after a lot of head scratching, I was able to establish two-way communication between the WebBrowser Control and the main application window. It is necessary to capture events that take place in the webBrowser control which relies on run-of-the-mill Javascript and DHTML, and pass those events and data back to the parent application window for processing.

For example: when a span element in the webBrowser control containing a twitter screen name is clicked, the event is captured in the webBrowser control and the innerHtml property of the span element that triggered the event is sent back to the main app window where it is prepended with the “@” symbol and set as the text (@twitter_id) to start a reply to a twitter message.

This is good news and for TwitterPatter, an important function. Having the ability to capture events in the browser control and then pass them back to the main application opens the door for a lot of new options, features and user interactions.