SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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/twitter-
async)
○ 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
Twitter API
Keys for creating an awesome application !
https://twitter.com/zorrobiwan/status/341888609399480323

Contenu connexe

Plus de La FeWeb

Plus de La FeWeb (9)

NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
 
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETICNoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETIC
 
Usability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
Usability & Wireframe par Nathalie Gouzée - Co-Founder RubbikUsability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
Usability & Wireframe par Nathalie Gouzée - Co-Founder Rubbik
 
Introduction to Emolytics par David Hachez, Co-Founder GetSmily
Introduction to Emolytics par David Hachez, Co-Founder GetSmilyIntroduction to Emolytics par David Hachez, Co-Founder GetSmily
Introduction to Emolytics par David Hachez, Co-Founder GetSmily
 
Le community management pour les nuls par Louise Maton
Le community management pour les nuls par Louise MatonLe community management pour les nuls par Louise Maton
Le community management pour les nuls par Louise Maton
 
RWD - Back to Basics par Ruben Pieraerts
RWD - Back to Basics par Ruben PieraertsRWD - Back to Basics par Ruben Pieraerts
RWD - Back to Basics par Ruben Pieraerts
 
Twitter Bootstrap par Antoine Guédès et Cédric Dussart
Twitter Bootstrap par Antoine Guédès et Cédric DussartTwitter Bootstrap par Antoine Guédès et Cédric Dussart
Twitter Bootstrap par Antoine Guédès et Cédric Dussart
 
Less CSS by Gauthier Eloy
Less CSS by Gauthier EloyLess CSS by Gauthier Eloy
Less CSS by Gauthier Eloy
 

Dernier

Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Dernier (20)

Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 

Twitter API's par Pascal Alberty, CTO de TweetWallPro

  • 1. Twitter API Keys for creating an awesome application !
  • 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
  • 14. Entities / Entity Example ● Hashtags, Medias, URLs, User mentions, Symbols ● No need to parse ● Data used for display also (ex: display_url)
  • 16. Libraries ● PHP ○ Twitter-async (https://github.com/jmathai/twitter- async) ○ 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
  • 17. 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
  • 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
  • 19. REST API ● Timelines ● Tweets ● Direct Messages ● Friends & Followers ● Users ● Suggested Users ● Favorites ● Lists ● Saved Searches ● Places & Geo ● Trends ● Spam Reporting ● OAuth ● Help
  • 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