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

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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?
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

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