Example RSS feed link: http://twitter.com/statuses/user_timeline/twitter.rss
Does anyone know if Twitter limits calls to a public RSS feed? This is not using an API but a simple call to a URL.
I am unable to find anything official (or even speculative). I know the API has access limits of x requests within y minutes. I am wondering if the public RSS feeds follow a similar pattern. I am seeing behavior in a mobile app that makes me think that this may be the case.
Device 1 receives an empty response while device 2 still gets updates for identical feed. Have also seen it on from my computer running a simulator for a while. Simulator stopped getting updates, then I couldn't pull up the feed in a web browser on same machine that was running the simulator. I am suspicious that Twitter is limiting RSS feed access by device. I think this because in the previous example, all RSS feeds were inaccessible form the web browser while the Twitter site was functioning properly in the same web browser.
The RSS URL is being queried every 10 minutes.
Any insight is appreciated.
Non authenticated (OAuth only) requests rate is 150 per hour.
OAuth requests rate is 350 per hour.
Requests limit rate is per IP address, so I don't think Twitter will deny the request with ONE request every 10 minutes.
The method you mention is public, but the only requests that doesn't have the rate limit are the ones of the search API (which has a little delay versus the 'real time'). Anyway I suggest you to read: http://dev.twitter.com/pages/rate-limiting and http://dev.twitter.com/pages/rate_limiting_faq
Twitter's web site is a client of their API, so I'm guessing their RSS feeds are also clients of the Twitter API as well. See this page at the Twitter engineering site for more information about this, and also see the Twitter Rate Limiting FAQ for information about rate limiting.
Related
I use the Twitter SDK for iOS (and Android,too). My iOS app pulls some tweets from the Twitter API via network request.
In the documentation (https://dev.twitter.com/rest/public/rate-limiting and https://dev.twitter.com/rest/public/rate-limits) Twitter describes some rate limits for requests and differs them "Per User or Per Application".
My iOS app pulls for example information from the endpoint https://dev.twitter.com/rest/reference/get/search/tweets with "guest authentication" (means: usage "Per Application" - not "Per User") to build a Twitter social wall.
What I don´t understand: What does Twitter mean in this case with rate limit for an Application? Does this means single instance of my iOS app on a device has it´s own rate limit for this request or does all my total instances of all iOS apps share this rate limit together (because the authentication uses the same fabric-app keys on all devices)?
I´m confused ... can somebody explain this to me, please?
Rate limits for application authentication are shared by all apps connecting with the same application credentials. Basically, rate limits are applied per access token, as described here. You can use the rate_limit_status endpoint to find out the remaining number of requests your app can make in the current 15-minute window.
I am trying to access live tweets of a user whenever he tweets it. So, all I want is something that continuously monitors a user account and whenever he tweets something I have to capture it. All the tweets are random so I cannot use any filters.
For any security reasons, if I cannot access other's tweets can I do it on my own account?
With tweepy you can connect to the REST API or the Streaming API.
Using the Streaming API you can use the filter endpoint to select the users you wish to follow with that streaming connection and you will receive updates as they get published.
Twitter's documentation: https://dev.twitter.com/docs/api/1.1/post/statuses/filter, tweepy's code: https://github.com/tweepy/tweepy/blob/master/tweepy/streaming.py
Tweepy's documentation doesn't give examples on the Streaming functions but you can find sample code searching at GitHub or StackOverflow for "tweepy filter follow".
Tweepy talks to the Twitter REST API, and the REST API doesn't have any way to react to someone posting a tweet.
HOWEVER...
You could certainly write an application that retrieves the tweets of a partcular user and looks for any tweets that weren't there the last time you checked.
You'd want to be cautious about how often you check so you don't run afoul of the API rate limits.
I'm using the Twitter/Social frameworks to build a small Twitter app. It's not really a client, but you can send tweets from it and do a handful of other things (like view followers).
My question is, am I subject to the 100,000 token user limit? I am using TWRequest to handle everything from posting tweets to pulling in followers/lists etc.
From what I can tell, the 100,000 user limit does not apply to this scenario (as I haven't needed to generate a token to access any of that functionality) and I'm not replicating twitters core functionality.
Any application that accesses the home timeline or direct message APIs consumers user tokens. However, your application seems to be for your own personal use. Therefore, you're not going to ever need 100,000 user tokens.
I'm currently using Twitter's RSS API (example) to retrieve people's tweets for an app. However, once version 1.1 of their API comes out, I won't be able to do this anymore. What's a simple replacement I can use for this?
Unfortunately the answer is: "There is none."
Twitter continues to lock down their platform, as they have since the switch to OAuth. If you want to add content to Twitter, you can do that easily. If you want to get content out of Twitter, well, you'll have to conform to Twitter's requirements.
RSS was an easy way of getting content out of Twitter, and so they killed it. They'll tell you that it wasn't really used, but that's a load of bull and they know it, but it sounds good and most people will simply swallow it.
There is a workaround that you can use until March 2013:
https://api.twitter.com/1/statuses/user_timeline/UserName.rss
Replace 'UserName' with the actual twitter username you want.
But after sometime in March/April 2013, that will cease to work and you'll have to use OAuth and json to parse Twitter feeds.
Use Twitter RSS - Google Apps Script from github to convert Twitter API 1.1 to RSS. Using this option you can get search results, users' timelines, users’ favorites or even Twitter Lists.
I've put together two mit licensed php scripts and instructions so you can fetch and cache twitter user timelines as RSS..
The most important is to cache the tweets since you are only allowed to call the API 15 times per 15 minutes..
Have a look at twitterrss.net
I've been looking for an answer to this for a while, basically as I wanted to provide a replacement for the Twitter triggers in IFTTT. When IFTTT removed them we could use Twitter's RSS feeds. However now, with v1 of their API retired, you have to authenticate any requests and they no longer off RSS feeds. It's a shame because it's closing the door for a lot of newbie developers out there.
I'd definitely recommend checking out twitter-rss.com in the answer above, but you might want to check out a solution I've come up with. It is called Twools and it's almost ready.
Twools started off as a way to get back RSS feeds from Twitter. Twitter
retired version 1 of their API in June 2013 as well as retiring RSS feeds. As
well as not having access to RSS feeds, you need to be authenticated to use
the API which
raises the bar for Twitter users and developers. It has been my intention to
make this as easy as possible for you install, however you do need to install
this on your own website (PHP is required). It is just a case of editing a few
lines in a file (with your Twitter app details) and uploading to your website.
Twools offers a number of RSS feeds from the Twitter API:
Your home timeline
User timeline (yours or another user's)
Your mentions
Your favorites
List timeline (from a list that you own)
Direct messages received (disabled by default)
Direct messages Sent (disabled by default)
Twitter Search
New followers
New friends
You can filter the results from the Twitter API by only outputting tweets
containing certain keywords, hashtags or screen names or even by the app used
to send the Tweet. As well as that you can filter based on the user (currently
their location and language). Finally, you can modify the data outputted in
the RSS feed by removing URLs, screen names, hashtags etc or share your recipe
with other folders. As well as an RSS feed generator, Twools has a basic
direct message spam filter (experimental- use at your own risk!) and a simple
social media management tool (basically an HTML version of the RSS filters).
You can also keep an eye on your API usage on the Status page.
With Twools and your app you could
Your tweets when you mention a specific hashtag
Your Twitter Faves:
Get new followers from the a certain country or location
Get tweets when someone mentions Starbucks negatively in a Tweet in the UK
Get tweets when someone tweets to an article on your website
For more information, see http://twools.it/
I have a corporate website that I want to pull in tweets to, but i'm getting a rate limit using the http feed. So, I want to use an authenticated method to get the tweets.
Do I really have to register an application to do this, even though it's not really an application and my users will never be entering or changing the twitter account info.
Also, my corporate site doesn't have a public address, and registering an application through twitter appears to require a public url. So how can I get around this? Do I have to create a "fake" application with a public url, just to generate my keys?
Thanks for any help on this.
If your site is behind a proxy server along with all your users, using Javascript/jQuery won't help. All the requests will still be coming from the same IP and will hit a rate limit, as you're doing now.
The other issue is that you don't need to register an app to request a feed. Apps are only needed for Oauth, and getting a feed doesn't need that.
The best way to deal with this is to get the feed with a server script, store it on the server, and then deliver the server copy to the web pages. If you request the feed less than 150 times per hour, you won't have a limit problem.
If you want more than a single feed, you can use the streaming API to get all the tweets for up to 400 keywords or from up to 5,000 users. This still doesn't need a registered app, since the streaming API still allows Basic Auth.
Just wanted to post this for future reference and in case anyone else has the same question. The solution to my problem, was to register an application on twitter. But since I'm just using a single user, you don't have to do the regular OAuth steps of generating a request for a key, getting the response etc. Every app you register in twitter get's its own "Access Token" that you can use to retrieve tweets etc. So, this is what I ended up doing to solve the problem I was having.
Additional details: My main concern was having to do the OAuth steps of requesting an access code etc... Since my application is only a single user implementaion (just pulling in our company related tweets from company held twitter accounts), it just seemed unneccesary to have to do all of that. But what I found was that when you register an app on twitter, you get a private access token for each app. You can view a little information about that here: https://dev.twitter.com/pages/oauth_single_token.
It sounds like you are pulling the feed down over http on the server? You could just limit the updates so you don't hit the rate limit.
I would recommend instead doing this on the client side. There are a lot of very easy to use embeddable java script twitter clients out there. The rate limiting problem would dissapear as the feed would be coming from the desktop and not the server (unless they just kept refreshing it).
The Twitter developer wiki lists a few.
JQuery plugin for Twitter
Tweet (another JQuery plugin)