LINQ to Twitter v2.1.08 Released

Today, I released v2.1.08. This was primarily a critical bug fix where the problem was that no one using LINQ to Twitter could tweet. Of course, most people need to tweet, so it was pretty important to get this fixed.

The core of the issue is that LINQ to Twitter has been performing HTTP POST requests for a long time without setting Content-Type. Twitter API has been very forgiving on this, but recently began tightening standards after moving to Twitter API v1.1. In fact, recent blog posts by the Twitter API team have indicated that they would be tightening HTTP and OAuth standards.

The current problem started several days ago with posts by a couple people that were experiencing intermittent problems. Without being able to reproduce the situation, I wasn’t able to figure out what the problem was. The error returned from Twitter API was:

{"errors":[{"code":170,"message":"Missing required parameter: status"}]}

Certainly, status was included in the request, so I was a bit confused. Anyway, the problem got a whole lot worse today and started affecting many people, including myself.

Fortunately, one of Twitter’s Developer Evangelists, @episod, was able to point me in the right direction right away, noticing the fact that I hadn’t included the Content-Type header.

I set Content-Type, but that wasn’t working immediately because I then began to receive 401 errors. It seems I wasn’t processing parameters properly, so I iterated through posted parameters and passed them into the OAuth component so they could contribute towards building the OAuth signature. Along the way, I had a temporary glitch by accidentally including all possible parameters, whether I used them or not, but fixed that by only including the parameters that were being sent with the POST body for OAuth processing. After I got through that, everything worked fine.

Here are the diffs if you’re curious:

These changes are now posted to both Codeplex.com and NuGet.org as v2.1.08 and you’ll want to update if you’re calling UpdateStatus.

@JoeMayo

This article is part of the GWB Archives. Original Author: Joe Mayo

New on Geeks with Blogs

  • We Won The One Award I Actually Care About

    Full Scale made the Inc. 5000 for the fifth year straight, the 12th listing across my three companies. Here is why the one award you cannot buy is worth stopping for.

  • Your Customers Build the Features Now

    I let a tool I liked sit dead for a year rather than build the features I wanted. An MCP server meant I never had to, and your customers can do the same to your product.

  • Get the Size of a Directory in Linux the Easy Way

    du -sh for the quick answer, ncdu for the cleanup, df for the disk itself: every command for checking directory size in Linux, plus why du and df never agree.

  • Vim Search and Replace: The Ultimate Guide

    One :%s command replaces every match in a file before a find dialog would even open. The Vim substitute patterns worth the muscle memory: flags, ranges, capture groups, and multi-file edits.