Twitter's API has got too painful for me

By Robert Ellison. Updated on Thursday, November 12, 2015.

Twitter's API has got too painful for me

I've developed a bunch of stupid, niche and vaguely promising apps on top of the Twitter API. During that time I've slogged through various painful and rapid shifts like changing IDs, authentication schemes and diktats handed down on which parts of the ecosystem Twitter would like to control. I've had to roll my own OAuth and even re-word a blog post to Twitter Support's satisfaction to get a blocked application unblocked again. It's been a pretty frustrating experience but worth rolling with the punches until the past week.

Twitter suspended Cleat, a tool for posting from the command line. So I emailed to ask why, too much effort for them to explain the rationale at the time they're putting the suspension in place I guess. I got an auto-response asking for information they must have already had and I replied to this. A few days later I still hadn't heard back so I emailed again and the ticket had been automatically closed. 

So far just the standard fuck-off-and-die support that you'd expect from a growing company that no longer wants to talk to it's users. But the auto-reply directed me to https://support.twitter.com/forms/ to file a new ticket. None of the options there relate to developers or a suspended application. I tried filing a ticket under 'deactivated account' which seemed the closest.

That form has a hard-coded 'With love,' valediction. Whoever thought that was cute should go through the process of trying to get help a few times. 

This attempt auto-responded to say that my account was not suspended, and would I like to fuck-off-and-die or got back to the forms center?

So I tried another form that actually seemed to submit but haven't heard anything back.

I'd be happy to update my software if I know which vague shifting facet of the Twitter terms of use I'd fallen foul of. Or at least I would have been. I'm just so sick of it that I've pulled Cleat and I'm done with any more personal projects that use the Twitter API. 

Add your comment...

Related Posts

(All Code Posts)

(Published to the Fediverse as: Twitter's API has got too painful for me #code #twitter #cleat #commandline #api Twitter's opaque API policies have led to me no longer developing on the platform. )

Catfood: Cleat 1.10

By Robert Ellison. Updated on Saturday, October 1, 2022.

I've just released an updated version of Cleat that supports geolocation and timestamps. Cleat is my Windows command line client for Twitter.

Add your comment...

Related Posts

(All Code Posts)

Catfood: PdfScan 1.40

By Robert Ellison. Updated on Wednesday, June 2, 2021.

Catfood: PdfScan 1.40

Catfood PdfScan 1.40 is a small bug fix release. PdfScan converts documents to PDFs with the help of a flatbed or automatic document feeder (ADF) scanner.

Add your comment...

Related Posts

(All Code Posts)

Upgrading to BlogEngine.NET 2.5

By Robert Ellison. Updated on Sunday, November 6, 2022.

Today I upgraded this blog to the latest and greatest version of BlogEngine.NET. Not entirely smooth sailing, so here are my notes for others (and the next time I have to do it):

The IsCommentsEnabled property BlogEngine.Core.Post has changed to HasCommentsEnabled. Not sure why this was worth changing but easy enough to fix.

BlogSettings.Instance.StorageLocation doesn't exist any more. After some digging it turns out that you need to use Blog.CurrentInstance.StorageLocation instead.

WidgetBase and WidgetEditBase in a couple of custom widgets complained that the type or namespace could not be found. This is fixed by adding a using statement for App_Code.Controls.

Updated 2012-03-11:

Getting the blog running locally was as usual only half the hassle. The next step is deploying to my hosting provider, Server Intellect. Things always start going wrong at this point. Luckily Server Intellect has some really great support staff and they respond quickly even on a Saturday night.

The first problem is that my backups were broken. Backups always succeed, restores always fail. After restoring my App_Data folder the last month of posts were missing. After digging for a bit it turned out that recent files were invisible over FTP but present in the control panel for the domain. My server had been migrated and some sort of permissions issue had broken access to new files. Not specifically a BlogEngine.net issue, but took a while to figure out and then for Server Intellect to fix.

Once the files were all there I uploaded and the blog itself was working fine, but the admin pages were screwy. It turns out that my server doesn't have ASP.NET MVC 3 installed. Server Intellect offered to migrate the server, but instead I copied System.Web.Mvc.dll to the Bin folder after finding a post on MVC 3 deployment from Scott Hanselman. I also needed to add a MIME type for .cshtml (text/html). With this in place the fancy new admin pages are up and running. 

Updated again, 2012-03-11:

Another namespace issue, ExtensionSettings in an extension doesn't resolve any more. Need to add a using statement for BlogEngine.Core.Web.Extensions. There are also some changes required to make an extension support multiple blogs.

Add your comment...

Related Posts

(All Code Posts)

Catfood.Shapefile 1.50

By Robert Ellison. Updated on Sunday, May 23, 2021.

I've just released a small update to my C# Shapefile library on Codeplex. Catfood.Shapefile 1.50 fixes a couple of bugs related to metadata and adds the ability to access metadata records directly via IDataRecord. 

Add your comment...

Related Posts

(All Code Posts)

Moon on a Wire

By Robert Ellison. Updated on Saturday, June 23, 2018.

Moon on a Wire

Testing posting by email with a picture of the moon from last night...

I've extended BlogEngine.NET to post by email. Not horrible for the very specific case of this blog and a short list of email clients. I shudder to think of extending it to the general emails and different templates.

Add your comment...

Related Posts

(All Code Posts)

(Published to the Fediverse as: Moon on a Wire #code #blogengine.net Picture of the Moon close to a wire. This is actually a test of posting by email from blogengine.net. )

Catfood.Shapefile 1.40

By Robert Ellison. Updated on Monday, September 19, 2022.

I’ve just released a small update to Catfood.Shapefile. Stephan Stapel, who implemented PolyLineM support, has contributed a patch that improves the class hierarchy. CodePlex user originSH suggested supporting the ACE driver for 64-bit systems. I’ve added a constructor overload that allows you to use predefined Jet and ACE connection strings or provide your own templates if necessary. Thanks to Stephan and originSH.

Catfood.Shapefile is a .NET library for enumerating ESRI shapefiles. I originally wrote the library to help me build some complex layers in Catfood Earth. Since then it’s picked up thousands of users and some really valuable suggestions and patches from the CodePlex community. I’m very glad a took a couple of hours to open source the library back in 2009.

Add your comment...

Related Posts

(All Code Posts)

Catfood: Cleat

By Robert Ellison. Updated on Saturday, October 1, 2022.

PolyLineM support in Catfood.Shapefile

By Robert Ellison. Updated on Sunday, May 23, 2021.

I’ve just updated Catfood.Shapefile, my ESRI Shapefile parser for .NET, with PolyLineM support thanks to a contribution from Stephan Stapel. The solution for the new version has also been updated to Visual Studio 2010.

Download Catfood.Shapefile.dll 1.30 from CodePlex.

Add your comment...

Related Posts

(All Code Posts)

Catfood: Klout and Follower

By Robert Ellison. Updated on Sunday, November 6, 2022.

Klout is building PageRank for people. You get a score between 0-100 based on how large your social graph is and how much you influence it. They also have a simple API and have been kind enough to let me use it as part of Follower so I’ve just released Follower 1.40 with Klout integration.

Follower automates the chore of following new friends on Twitter. It also somewhat automates removing traitors who don’t follow you back – as much as Twitter would let me get away with. One problem with following promiscuously is that you do end up following a lot of spammy and scammy accounts. Adding Klout helps with this as you can now say ‘follow everyone who follows me as long as their Klout score is higher than 15’. This keeps some of the riff raff out. And if a follower’s score rises above the threshold then they’ll be admitted into the club.

You can also use Klout to weed out existing follows with a low Klout. In this mode anyone below a configurable score will be added to the remove list even if they are following you back.

The only snag I hit with API is that while you can lookup a user by Twitter ID the ID isn’t returned in the response. If you query multiple IDs at a time you don’t always get a full set of results so without the ID you can’t reliably tell which result is associated with each ID. For this reason I’m only looking up one score at a time. Twitter has nice bulk methods to grab IDs for up to 5,000 friends or followers, it would nice if Klout could match this or at least fix the ID issue. This is a small problem though and having an automated way of detecting the quality of Twitter accounts is a great addition to Follower. If you use Twitter check it out.

Add your comment...

Related Posts

(All Code Posts)