3. Twitter Dev Ecosystem
● Twitter success
○ Thanks Dev Community !
● API
○ September 2006
○ Very complete
○ Open
○ Free
https://blog.twitter.com/2006/introducing-twitter-api
4. The APIs
● APIs
○ Search API
○ REST API
○ Streaming API
○ https://dev.twitter.com/docs/history-rest-search-api
● Versions
○ API version 1 (almost deprecated)
○ API version 1.1
6. Authentication
● OAuth
○ Each API request must be authorized
○ Access token on behalf of a Twitter user
● Obtaining access token
○ Sign in with Twitter
○ 3-legged OAuth
○ Pin based OAuth
○ dev.twitter.com
○ ...
https://twitter.com/settings/applications
8. Rate limiting
● Rate limit window duration
○ 15 minutes
● Requests allotted
○ per user
○ via application-only auth
● Example
○ GET statuses/user_timeline
○ per user: 150 requests per 15 minutes
○ via app: 300 requests per 15 minutes
https://dev.twitter.com/docs/rate-limiting/1.1/limits
9. Other technical limits
● Direct messages
○ 250 per day
● Tweets
○ 1,000 per day
○ Retweets are counted as Tweets.
● Changes to account email
○ Four per hour
● Following
○ 1,000 per day
● Following (account-based)
○ up to following 2,000 other users
10. Platform objects
● Tweets can be found alone, within user objects, but
most often within timelines
● Users can be found tweeting, following, and
favoriting on Twitter
● Entities are most often found within Tweets
● Places can be found throughout the natural universe,
but typically only appear attached to Tweets on Twitter
11. Objects type
● JSON !
● XML output will be dropped soon
○ Only JSON output with API 1.1
● Be careful with ids (64 bits)
○ use String version (especially if using Javascript)
○ Twitpocalypse
■ https://dev.twitter.com/docs/twitter-ids-json-and-snowflake
○ Idpocalypse
■ https://dev.twitter.com/blog/64-bit-twitter-user-idpocalypse
18. Search API
● Similar to http://search.twitter.com
● Criteria
○ terms
○ geocode
○ language ("Language detection is best-effort")
○ count, until, since-id, max-id
○ result type: mixed, recent, popular
○ include entities
● Paginated !
○ you have to manage this by yourself
20. Streaming API
● Persistent HTTP connection
○ until you decide to close it
● Could be reeeeaaaaaaally huge !
○ Think about you architecture (hard and soft) !
○ Separate storage and consumption
● Only one stream opened at a time
● Could be tricky to managed
○ Use a library
21. Streaming API endpoints groups
● Public Streams
○ GET statuses/sample
○ POST statuses/filter
○ GET statuses/firehose (limited access)
● User Streams
○ Data and events for a specific user
● Site Streams (beta and limited access)
○ Real time update for large number of users
22. Twitter API
Keys for creating an awesome application !
https://twitter.com/zorrobiwan/status/341888609399480323