I have heard about Twitter discontinuing the Twitter API. Does that mean that I cannot make an iOS Twitter client?


#1

I am in the process of creating a Twitter client, however I am confused by all the info that is out there currently. I have read that Twitter discourages people to create any Twitter clients, but is there any chance of getting my application out there ?

All the best


#2

It would seem the limitations on getting a users timeline would make your client only usable to a small user base before you hit that limit. From what I gather posting to twitter is not restricted.


#3

Thanks elliotrock for your response. What kind of limitations would they have to suffer ? I am currently testing the app and I get “Rate limit reached” errors due to too many requests in a certain amount of time. Will my users experience the same thing ?


#4

Yes, the rate limits will always exist, you’ll need to handle being rate limited in your app, but all the documented API endpoints state how many requests you can make in a 15 minute period. For example, each user can only make 15 requests to statuses/mentions_timeline over a 15 minute period, so you’ll need to handle situations where they try and request it more. You could try and leverage the streaming APIs instead of the REST API as that’s subject to different rate limits.

However if you’re creating a Twitter client you’ll also be subject to the 100,000 access token limit for your app, i.e. only 100,000 people will be able to use it before people won’t be able to authorize their account to use the app. That’s a separate issue to the API rate limiting but may be a problem if you expect the app to be popular. The API rate limits affect every user of the API no matter how you use it, but as you’re replicating the core Twitter experience you also have the 100,000 access token limit to deal with.

Hope that helps. I’d recommend reading all the docs on rate limiting though before jumping into making an app.


#5

Thank you too Matt for your response. Are other popular Twitter clients restricted to those limitations as well ? Even those which are around for a long time ? If so, it seems to me that they handle rate limiting very well and it would suffice if my app handles requests like that. I really hope that my application reaches the 100,000 user mark, but more importantly I just want my users to be satisfied with the interface and usability.

What happens if the 100k mark is reached ? Will I have to take the app down ? And how exactly do access tokens work ? Let’s pretend somebody downloaded the application, what exactly assigns an access token to a user ? Do I have to assign one upon initial launch of the application ?

Best regards


#6

Yep, as far as I understand it there aren’t any exceptions to the limitations. Tweetbot, Twitterific, Echofon, they’re all subject to the same limits (technically existing client apps could have a higher user limit than 100,000 but that’s because they already existed when the limit was introduced, new apps are still limited to 100,000). I don’t know how other apps manage the rate limiting but Tweetbot uses the streaming APIs which as I said have different rate limits. Realistically though most of the rate limits are pretty reasonable for the majority of users; it’s unlikely many people are going to refresh their mentions timeline 15 times in 15 minutes very often.

The way access tokens work is part of the process of authenticating your account with Twitter to use the app, and is all documented on this site, but you should have that bit working already if you’re able to test your app; you are using API v1.1 which requires authentication for all requests, right? At a very basic level, when you go through the whole ‘Sign In with Twitter’ and OAuth authentication process, you go through and authorize the app to access your account, and you get back access tokens to make API requests on behalf of that user, which you must already have; if you’re using the Twitter libraries in iOS to do this then it should take care of it for you as far as I’m aware. For apps that replicate the core Twitter experience, only 100,000 accounts can go through this process, and once there’s more than that it won’t authorize the app, you won’t get any tokens, and the user won’t be able to use the app. As for taking it down, I don’t really know, that’d be up to you; I know Falcon Pro for Android had to hike the price up because it has to stay in the Google Play store to allow them to update it, but they didn’t want people to buy it anymore because they’d used up their allotment of tokens. Basically it’d be possible to buy an app that you can’t allow your Twitter account to use so you’ve wasted your money. This is why it’s discouraged to build apps that replicate the core Twitter experience.


#7

Thanks, that actually made many things clear for me. I am using the Twitter library in my application, so your assumption must be right that access tokens are handled internally. I have also heard about Falcon Pro’s problems with their reaching the limit ,but to be honest with you, I would really be happy to get there at the first place. I’ll worry about other things when it comes down to it :-).

I really appreciate your assistance Matt and I wish you a lovely day.