SlideShare a Scribd company logo
1 of 22
Download to read offline
Twitter API
Keys for creating an awesome application !
Pascal Alberty
@zorrobiwan
CTO

Managing Partner
Twitter Dev Ecosystem
● Twitter success
○ Thanks Dev Community !

● API
○
○
○
○

September 2006
Very complete
Open
Free

https://blog.twitter.com/2006/introducing-twitter-api
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
Resources

https://dev.twitter.com/

(Drupal

)
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
Declare your application

https://dev.twitter.com/apps/new
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
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
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
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
Tweet Example

https://api.twitter.com/1/statuses/show.json?id=341545927401680897&include_entities=true
User example

https://api.twitter.com/1/users/show.json?screen_name=zorrobiwan&include_entities=true
Entities / Entity Example
● Hashtags, Medias, URLs, User mentions,
Symbols
● No need to parse
● Data used for display also (ex: display_url)
Place example

https://api.twitter.com/1/geo/id/247f43d441defc03.json
Libraries
● PHP
○ Twitter-async (https://github.com/jmathai/twitterasync)
○ tmhOAuth (https://github.
com/themattharris/tmhOAuth)
○ Zend Framework (http://framework.zend.
com/manual/1.12/en/zend.service.twitter.html)

● Java
○ Twitter4J (http://twitter4j.org/)
https://dev.twitter.com/docs/twitter-libraries
Tools
● Twurl
○ https://github.com/marcel/twurl
○ "curl" for Twitter API
○ Manage access tokens (authentication)

● Apigee Console
○ https://apigee.com/console
○ Free console to execute APIs
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
REST API
●
●
●
●
●
●
●
●
●
●
●
●
●
●

Timelines
Tweets
Direct Messages
Friends & Followers
Users
Suggested Users
Favorites
Lists
Saved Searches
Places & Geo
Trends
Spam Reporting
OAuth
Help
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
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
https://twitter.com/zorrobiwan/status/341888609399480323

Twitter API
Keys for creating an awesome application !

More Related Content

Similar to 20130504 - FeWeb - Twitter API

The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
Chris Aniszczyk
 
Api centric enterprises
Api centric enterprisesApi centric enterprises
Api centric enterprises
WSO2
 

Similar to 20130504 - FeWeb - Twitter API (20)

20131008 - Wajug - TweetWall Pro
20131008 - Wajug - TweetWall Pro20131008 - Wajug - TweetWall Pro
20131008 - Wajug - TweetWall Pro
 
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
Building a Slack Bot Workshop @ Nearsoft OctoberTalks 2017
 
CSE5656 Complex Networks - Gathering Data from Twitter
CSE5656 Complex Networks - Gathering Data from TwitterCSE5656 Complex Networks - Gathering Data from Twitter
CSE5656 Complex Networks - Gathering Data from Twitter
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020
 
EuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears TrainingEuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears Training
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
How QCLean Works? Introduction to Browser Extensions
How QCLean Works? Introduction to Browser ExtensionsHow QCLean Works? Introduction to Browser Extensions
How QCLean Works? Introduction to Browser Extensions
 
API Design & Security in django
API Design & Security in djangoAPI Design & Security in django
API Design & Security in django
 
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
Data Engineer's Lunch #37: Pipedream: Serverless Integration and Compute Plat...
 
Chasing the RESTful Trinity - Client CLI and Documentation
Chasing the RESTful Trinity - Client CLI and DocumentationChasing the RESTful Trinity - Client CLI and Documentation
Chasing the RESTful Trinity - Client CLI and Documentation
 
Resful Trinity Code One - San Francisco
Resful Trinity Code One - San FranciscoResful Trinity Code One - San Francisco
Resful Trinity Code One - San Francisco
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
Tripletail
TripletailTripletail
Tripletail
 
Social Media Data
Social Media DataSocial Media Data
Social Media Data
 
The Open Source... Behind the Tweets
The Open Source... Behind the TweetsThe Open Source... Behind the Tweets
The Open Source... Behind the Tweets
 
Creating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from TwitterCreating an Open Source Office: Lessons from Twitter
Creating an Open Source Office: Lessons from Twitter
 
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
 
Agile startup company management and operation
Agile startup company management and operationAgile startup company management and operation
Agile startup company management and operation
 
OSINT for Proactive Defense - RootConf 2019
OSINT for Proactive Defense - RootConf 2019OSINT for Proactive Defense - RootConf 2019
OSINT for Proactive Defense - RootConf 2019
 
Api centric enterprises
Api centric enterprisesApi centric enterprises
Api centric enterprises
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

20130504 - FeWeb - Twitter API