SlideShare une entreprise Scribd logo
1  sur  28
Techcrunch   hackathon!
At the Techcr unch Disrupt
Ha ckathon - giving a talk about
@twitte rapi & watching  people hack!
21 May via Twitter for iPhone



  from Pier 94
  755 12th Avenue
  New York, NY
   View Tweets at this place
>660K Developers on @twitterAPI
>900K applications +
The Officially Owned and Operated ones
The opportunity
Analytics
Content           Interpreting user information (for
                  Filtering valuable data data signals
                  Creating rich(real-time) to convey
                  Surfacingreal-time experiences (for the
                  Helping users publish the right content
                  into actionable information for
                  relevant, meaningful conversations
                  ecosystem) in exchange for greater to
                  enterprise users) to facilitate target
                  at the right time to optimize resonance.
Curation          industries
                  audiences.or interests.
                  reach and growth.
                  engagement and manage reputation.

Publishing
Enterprise
Every tweet that comes from quora to
twitter results in 30 clicks per tweet.
⇢ Charlie Cheever, Co-Founder
Flipboard sees 50-80% lift in retention
from users who have signed into
Twitter versus those who have not.
Twitter is just three things:
Tweets,relationships between those three
And the users, anD Timelines
What is the @TwitterAPI?
REST API
⇢provides Twitter functionality
⇢read / write / read DM (Tweet, Follow, DM, etc.)
Search API
⇢real-time search index
Streaming API
⇢HTTP long poll connection
⇢Tweets in real-time
Using the system


    13B API calls       150,000 calls
         per day    ≈   per second
Three main objects

Status Objects → the Tweet (text, author, and metadata)

User objects → username, screen name, avatar

Timelines → orderings of Tweets
The tweet's unique ID. These                   Text of the tweet.
                                                                    IDs are roughly sorted &             Consecutive duplicate tweets
                                                                 developers should treat them             are rejected. 140 character
                                                                as opaque (http://bit.ly/dCkppc).          max (http://bit.ly/4ud3he).
        DEPRECATED




                                     {"id"=>12296272736,
                                      "text"=>
                                      "An early look at Annotations:
                                       http://groups.google.com/group/twitter-api-announce/browse_thread/thread/fa5da2608865453",                      Tweet's
                                      "created_at"=>"Fri Apr 16 17:55:46 +0000 2010",                                                                  creation
                                      "in_reply_to_user_id"=>nil,                                             The ID of an existing tweet that           date.
                                      "in_reply_to_screen_name"=>nil,                                          this tweet is in reply to. Won't
                                      "in_reply_to_status_id"=>nil                                            be set unless the author of the
The author's




                                                                                  The screen name &
                                      "favorited"=>false,
  user ID.




                                                                                  user ID of replied to       referenced tweet is mentioned.
                                      "truncated"=>false,      Truncated to 140
                                                               characters. Only      tweet author.
                                      "user"=>
                                                              possible from SMS.                               The author's
                                       {"id"=>6253282,
                                                                                                                user name.                             The author's
                                        "screen_name"=>"twitterapi",
                                                                                           The author's                                                  biography.
                                        "name"=>"Twitter API",
                                                                                          screen name.
bedded object can get out of sync.




                                        "description"=>
                                        "The Real Twitter API. I tweet about API changes, service issues and
 The author of the tweet. This




                                         happily answer questions about Twitter and our API. Don't get an answer? It's on my website.",
                                        "url"=>"http://apiwiki.twitter.com",                                                                                   The author's
                                        "location"=>"San Francisco, CA",                                                                                          URL.
                                                                                        The author's "location". This is a free-form text field, and
                                        "profile_background_color"=>"c1dfee",           there are no guarantees on whether it can be geocoded.
                                        "profile_background_image_url"=>
                                        "http://a3.twimg.com/profile_background_images/59931895/twitterapi-background-new.png",
                                                                                                                                                    Rendering information
                                        "profile_background_tile"=>false,
                                                                                                                                                    for the author. Colors
                                        "profile_image_url"=>"http://a3.twimg.com/profile_images/689684365/api_normal.png",
                                                                                                                                                     are encoded in hex
                                        "profile_link_color"=>"0000ff",
                                                                                                                                                         values (RGB).
                                        "profile_sidebar_border_color"=>"87bc44",               The creation date
Timelines

user → a the Tweets a given user has authored

home → the main timeline you would see in a client

Mentions → all the Tweets that @mention a user
Causing change

Tweeting → a POST to status/update

Following → a POST to friendships/create

DM-ing → a POST to direct_messages/new
Authentication
OAuth 1.0a
⇢ signature based requests
⇢ user driven access to the API
⇢ client differentiated access to the API
Applications don’t have passwords
⇢ applications store tokens for their users
⇢ users can change passwords, but tokens still work
OAuth 2.0
⇢ coming soon!
Limits
350 OAuth calls / user / hour / IP
⇢ authenticated calls goes against calling user
⇢ unauthenticated calls goes against calling IP
“Natural” limits
⇢ limits on number of Tweets / DMs sent
⇢ limits on number of follows / unfollows a day
Status Limits
⇢ can’t send “duplicate” tweets
Streaming API
Persistent connections
⇢get pushed a tweet, in real-time, that matches your predicate
⇢“push” version of search
⇢read-only
User streams / Site streams
⇢re-create the client experience using streams
⇢great for “client” experiences
Latency

200ms

100ms

 0ms
Streaming API’s Sample hose

http://stream.twitter.com/1/statuses/sample.json
use curl
⇢uses basic authentication
⇢one connection per username
Streaming API’s Track and follow
http://stream.twitter.com/1/statuses/filter.json

Track
⇢watch a particular keyword
⇢up to 200 can be sent as CSV with track parameter
Follow
⇢get all the tweets (RTs, etc.) from a particular user
⇢up to 400 can be issued as CSV with follow parameter
Search API
Real-time search index
⇢Tweets indexed in <10 seconds
⇢1.5 billion requests a day
Search Corpus
⇢index goes back 7-10 days depending on traffic
⇢contains the best quality Tweets
Querying the Search API
http://search.twitter.com/search.atom?q= !
Use Curl
⇢ unauthenticated
⇢ rate-limited by IP address
Parameters
⇢ just put your query in the q parameter
⇢ use from to restrict to a particular username
⇢ OR to combine queries (q=techcrunch+OR+disrupt)
⇢ - to negate (q=techcrunch+-from=%3Araffi)
Tools of the Trade
dev.twitter.com
⇢ documentation central
⇢ create and register new applications
twurl
⇢ OAuth enabled version of curl
⇢ allows you to manually test authenticated and unauthenticated REST
Twitter for Mac
⇢ built in “developer console”
Tweet button
Implementing
⇢simple JavaScript to drop
 onto your site
⇢allows you to share URLs,
 and to recommend people to
 follow

Back-end
⇢high speed URL counting API
Follow me at
Questions?   twitter.com/raffi

Contenu connexe

Similaire à Developing for @twitterapi (Techcrunch Disrupt Hackathon)

HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleApigee | Google Cloud
 
Development of Twitter Application #2 - Twitter for Websites
Development of Twitter Application #2 - Twitter for WebsitesDevelopment of Twitter Application #2 - Twitter for Websites
Development of Twitter Application #2 - Twitter for WebsitesMyungjin Lee
 
Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Rabble .
 
Intro to Rails ActiveRecord
Intro to Rails ActiveRecordIntro to Rails ActiveRecord
Intro to Rails ActiveRecordMark Menard
 
Top 10 Web Security Vulnerabilities
Top 10 Web Security VulnerabilitiesTop 10 Web Security Vulnerabilities
Top 10 Web Security VulnerabilitiesCarol McDonald
 
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter Analysis
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter AnalysisIBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter Analysis
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter AnalysisTorsten Steinbach
 
Demystifying Initial Access in Azure
Demystifying Initial Access in AzureDemystifying Initial Access in Azure
Demystifying Initial Access in AzureGabriel Mathenge
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Rabble .
 
Building a Production-ready Predictive App for Customer Service - Alex Ingerm...
Building a Production-ready Predictive App for Customer Service - Alex Ingerm...Building a Production-ready Predictive App for Customer Service - Alex Ingerm...
Building a Production-ready Predictive App for Customer Service - Alex Ingerm...PAPIs.io
 
Tips and tricks for building api heavy ruby on rails applications
Tips and tricks for building api heavy ruby on rails applicationsTips and tricks for building api heavy ruby on rails applications
Tips and tricks for building api heavy ruby on rails applicationsTim Cull
 
Idea2app
Idea2appIdea2app
Idea2appFlumes
 
devise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwandevise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwanTse-Ching Ho
 

Similaire à Developing for @twitterapi (Techcrunch Disrupt Hackathon) (20)

Big data. Opportunità e rischi
Big data. Opportunità e rischiBig data. Opportunità e rischi
Big data. Opportunità e rischi
 
HATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API StyleHATEOAS 101 - Opinionated Introduction to a REST API Style
HATEOAS 101 - Opinionated Introduction to a REST API Style
 
Development of Twitter Application #2 - Twitter for Websites
Development of Twitter Application #2 - Twitter for WebsitesDevelopment of Twitter Application #2 - Twitter for Websites
Development of Twitter Application #2 - Twitter for Websites
 
Api
ApiApi
Api
 
Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007
 
Ams adapters
Ams adaptersAms adapters
Ams adapters
 
Active record(1)
Active record(1)Active record(1)
Active record(1)
 
Intro to Rails ActiveRecord
Intro to Rails ActiveRecordIntro to Rails ActiveRecord
Intro to Rails ActiveRecord
 
Top 10 Web Security Vulnerabilities
Top 10 Web Security VulnerabilitiesTop 10 Web Security Vulnerabilities
Top 10 Web Security Vulnerabilities
 
Web Security 101
Web Security 101Web Security 101
Web Security 101
 
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter Analysis
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter AnalysisIBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter Analysis
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter Analysis
 
Demystifying Initial Access in Azure
Demystifying Initial Access in AzureDemystifying Initial Access in Azure
Demystifying Initial Access in Azure
 
API Design - 3rd Edition
API Design - 3rd EditionAPI Design - 3rd Edition
API Design - 3rd Edition
 
The Rise of NoSQL
The Rise of NoSQLThe Rise of NoSQL
The Rise of NoSQL
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007
 
Building a Production-ready Predictive App for Customer Service - Alex Ingerm...
Building a Production-ready Predictive App for Customer Service - Alex Ingerm...Building a Production-ready Predictive App for Customer Service - Alex Ingerm...
Building a Production-ready Predictive App for Customer Service - Alex Ingerm...
 
Tips and tricks for building api heavy ruby on rails applications
Tips and tricks for building api heavy ruby on rails applicationsTips and tricks for building api heavy ruby on rails applications
Tips and tricks for building api heavy ruby on rails applications
 
PHP Secure Programming
PHP Secure ProgrammingPHP Secure Programming
PHP Secure Programming
 
Idea2app
Idea2appIdea2app
Idea2app
 
devise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwandevise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwan
 

Plus de Raffi Krikorian

Re-architecting on the Fly #OReillySACon
Re-architecting on the Fly #OReillySACon Re-architecting on the Fly #OReillySACon
Re-architecting on the Fly #OReillySACon Raffi Krikorian
 
Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Raffi Krikorian
 
Twitter: Engineering for Real-Time (Stanford ACM 2011)
Twitter: Engineering for Real-Time (Stanford ACM 2011)Twitter: Engineering for Real-Time (Stanford ACM 2011)
Twitter: Engineering for Real-Time (Stanford ACM 2011)Raffi Krikorian
 
Securing Your Ecosystem (FOWA Las Vegas 2011)
Securing Your Ecosystem (FOWA Las Vegas 2011)Securing Your Ecosystem (FOWA Las Vegas 2011)
Securing Your Ecosystem (FOWA Las Vegas 2011)Raffi Krikorian
 
Twitter for CS10 @ Berkeley (Spring 2011)
Twitter for CS10 @ Berkeley (Spring 2011)Twitter for CS10 @ Berkeley (Spring 2011)
Twitter for CS10 @ Berkeley (Spring 2011)Raffi Krikorian
 
Twitter by the Numbers (Columbia University)
Twitter by the Numbers (Columbia University)Twitter by the Numbers (Columbia University)
Twitter by the Numbers (Columbia University)Raffi Krikorian
 
Twitter and the Real-Time Web
Twitter and the Real-Time WebTwitter and the Real-Time Web
Twitter and the Real-Time WebRaffi Krikorian
 
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010Raffi Krikorian
 
How to use Geolocation in your webapp @ FOWA Dublin 2010
How to use Geolocation in your webapp @ FOWA Dublin 2010How to use Geolocation in your webapp @ FOWA Dublin 2010
How to use Geolocation in your webapp @ FOWA Dublin 2010Raffi Krikorian
 
"What's Happening" to "What's Happening Here" @ Chirp
"What's Happening" to "What's Happening Here" @ Chirp"What's Happening" to "What's Happening Here" @ Chirp
"What's Happening" to "What's Happening Here" @ ChirpRaffi Krikorian
 
Handling Real-time Geostreams
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time GeostreamsRaffi Krikorian
 
Adding the "Where" to the "When"
Adding the "Where" to the "When"Adding the "Where" to the "When"
Adding the "Where" to the "When"Raffi Krikorian
 

Plus de Raffi Krikorian (20)

Hacking Conway's Law
Hacking Conway's LawHacking Conway's Law
Hacking Conway's Law
 
Re-architecting on the Fly #OReillySACon
Re-architecting on the Fly #OReillySACon Re-architecting on the Fly #OReillySACon
Re-architecting on the Fly #OReillySACon
 
Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)
 
Twitter: Engineering for Real-Time (Stanford ACM 2011)
Twitter: Engineering for Real-Time (Stanford ACM 2011)Twitter: Engineering for Real-Time (Stanford ACM 2011)
Twitter: Engineering for Real-Time (Stanford ACM 2011)
 
Securing Your Ecosystem (FOWA Las Vegas 2011)
Securing Your Ecosystem (FOWA Las Vegas 2011)Securing Your Ecosystem (FOWA Las Vegas 2011)
Securing Your Ecosystem (FOWA Las Vegas 2011)
 
#rtgeo (Where 2.0 2011)
#rtgeo (Where 2.0 2011)#rtgeo (Where 2.0 2011)
#rtgeo (Where 2.0 2011)
 
500Startups @ Twitter
500Startups @ Twitter500Startups @ Twitter
500Startups @ Twitter
 
Twitter for CS10 @ Berkeley (Spring 2011)
Twitter for CS10 @ Berkeley (Spring 2011)Twitter for CS10 @ Berkeley (Spring 2011)
Twitter for CS10 @ Berkeley (Spring 2011)
 
Twitter by the Numbers (Columbia University)
Twitter by the Numbers (Columbia University)Twitter by the Numbers (Columbia University)
Twitter by the Numbers (Columbia University)
 
Users and Geo
Users and GeoUsers and Geo
Users and Geo
 
Twitter and the Real-Time Web
Twitter and the Real-Time WebTwitter and the Real-Time Web
Twitter and the Real-Time Web
 
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
 
Twitter by the Numbers
Twitter by the NumbersTwitter by the Numbers
Twitter by the Numbers
 
How to use Geolocation in your webapp @ FOWA Dublin 2010
How to use Geolocation in your webapp @ FOWA Dublin 2010How to use Geolocation in your webapp @ FOWA Dublin 2010
How to use Geolocation in your webapp @ FOWA Dublin 2010
 
Twitter API Annotations
Twitter API AnnotationsTwitter API Annotations
Twitter API Annotations
 
"What's Happening" to "What's Happening Here" @ Chirp
"What's Happening" to "What's Happening Here" @ Chirp"What's Happening" to "What's Happening Here" @ Chirp
"What's Happening" to "What's Happening Here" @ Chirp
 
Energy / Tweet
Energy / TweetEnergy / Tweet
Energy / Tweet
 
Handling Real-time Geostreams
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time Geostreams
 
Adding the "Where" to the "When"
Adding the "Where" to the "When"Adding the "Where" to the "When"
Adding the "Where" to the "When"
 
WattzOn @ ETech 2009
WattzOn @ ETech 2009WattzOn @ ETech 2009
WattzOn @ ETech 2009
 

Dernier

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Dernier (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Developing for @twitterapi (Techcrunch Disrupt Hackathon)

  • 1. Techcrunch hackathon!
  • 2. At the Techcr unch Disrupt Ha ckathon - giving a talk about @twitte rapi & watching people hack! 21 May via Twitter for iPhone from Pier 94 755 12th Avenue New York, NY View Tweets at this place
  • 3. >660K Developers on @twitterAPI
  • 4. >900K applications + The Officially Owned and Operated ones
  • 5. The opportunity Analytics Content Interpreting user information (for Filtering valuable data data signals Creating rich(real-time) to convey Surfacingreal-time experiences (for the Helping users publish the right content into actionable information for relevant, meaningful conversations ecosystem) in exchange for greater to enterprise users) to facilitate target at the right time to optimize resonance. Curation industries audiences.or interests. reach and growth. engagement and manage reputation. Publishing Enterprise
  • 6. Every tweet that comes from quora to twitter results in 30 clicks per tweet. ⇢ Charlie Cheever, Co-Founder
  • 7. Flipboard sees 50-80% lift in retention from users who have signed into Twitter versus those who have not.
  • 8. Twitter is just three things: Tweets,relationships between those three And the users, anD Timelines
  • 9. What is the @TwitterAPI? REST API ⇢provides Twitter functionality ⇢read / write / read DM (Tweet, Follow, DM, etc.) Search API ⇢real-time search index Streaming API ⇢HTTP long poll connection ⇢Tweets in real-time
  • 10. Using the system 13B API calls 150,000 calls per day ≈ per second
  • 11. Three main objects Status Objects → the Tweet (text, author, and metadata) User objects → username, screen name, avatar Timelines → orderings of Tweets
  • 12. The tweet's unique ID. These Text of the tweet. IDs are roughly sorted & Consecutive duplicate tweets developers should treat them are rejected. 140 character as opaque (http://bit.ly/dCkppc). max (http://bit.ly/4ud3he). DEPRECATED {"id"=>12296272736, "text"=> "An early look at Annotations: http://groups.google.com/group/twitter-api-announce/browse_thread/thread/fa5da2608865453", Tweet's "created_at"=>"Fri Apr 16 17:55:46 +0000 2010", creation "in_reply_to_user_id"=>nil, The ID of an existing tweet that date. "in_reply_to_screen_name"=>nil, this tweet is in reply to. Won't "in_reply_to_status_id"=>nil be set unless the author of the The author's The screen name & "favorited"=>false, user ID. user ID of replied to referenced tweet is mentioned. "truncated"=>false, Truncated to 140 characters. Only tweet author. "user"=> possible from SMS. The author's {"id"=>6253282, user name. The author's "screen_name"=>"twitterapi", The author's biography. "name"=>"Twitter API", screen name. bedded object can get out of sync. "description"=> "The Real Twitter API. I tweet about API changes, service issues and The author of the tweet. This happily answer questions about Twitter and our API. Don't get an answer? It's on my website.", "url"=>"http://apiwiki.twitter.com", The author's "location"=>"San Francisco, CA", URL. The author's "location". This is a free-form text field, and "profile_background_color"=>"c1dfee", there are no guarantees on whether it can be geocoded. "profile_background_image_url"=> "http://a3.twimg.com/profile_background_images/59931895/twitterapi-background-new.png", Rendering information "profile_background_tile"=>false, for the author. Colors "profile_image_url"=>"http://a3.twimg.com/profile_images/689684365/api_normal.png", are encoded in hex "profile_link_color"=>"0000ff", values (RGB). "profile_sidebar_border_color"=>"87bc44", The creation date
  • 13. Timelines user → a the Tweets a given user has authored home → the main timeline you would see in a client Mentions → all the Tweets that @mention a user
  • 14. Causing change Tweeting → a POST to status/update Following → a POST to friendships/create DM-ing → a POST to direct_messages/new
  • 15. Authentication OAuth 1.0a ⇢ signature based requests ⇢ user driven access to the API ⇢ client differentiated access to the API Applications don’t have passwords ⇢ applications store tokens for their users ⇢ users can change passwords, but tokens still work OAuth 2.0 ⇢ coming soon!
  • 16. Limits 350 OAuth calls / user / hour / IP ⇢ authenticated calls goes against calling user ⇢ unauthenticated calls goes against calling IP “Natural” limits ⇢ limits on number of Tweets / DMs sent ⇢ limits on number of follows / unfollows a day Status Limits ⇢ can’t send “duplicate” tweets
  • 17. Streaming API Persistent connections ⇢get pushed a tweet, in real-time, that matches your predicate ⇢“push” version of search ⇢read-only User streams / Site streams ⇢re-create the client experience using streams ⇢great for “client” experiences
  • 19. Streaming API’s Sample hose http://stream.twitter.com/1/statuses/sample.json use curl ⇢uses basic authentication ⇢one connection per username
  • 20. Streaming API’s Track and follow http://stream.twitter.com/1/statuses/filter.json Track ⇢watch a particular keyword ⇢up to 200 can be sent as CSV with track parameter Follow ⇢get all the tweets (RTs, etc.) from a particular user ⇢up to 400 can be issued as CSV with follow parameter
  • 21. Search API Real-time search index ⇢Tweets indexed in <10 seconds ⇢1.5 billion requests a day Search Corpus ⇢index goes back 7-10 days depending on traffic ⇢contains the best quality Tweets
  • 22. Querying the Search API http://search.twitter.com/search.atom?q= ! Use Curl ⇢ unauthenticated ⇢ rate-limited by IP address Parameters ⇢ just put your query in the q parameter ⇢ use from to restrict to a particular username ⇢ OR to combine queries (q=techcrunch+OR+disrupt) ⇢ - to negate (q=techcrunch+-from=%3Araffi)
  • 23. Tools of the Trade dev.twitter.com ⇢ documentation central ⇢ create and register new applications twurl ⇢ OAuth enabled version of curl ⇢ allows you to manually test authenticated and unauthenticated REST Twitter for Mac ⇢ built in “developer console”
  • 24.
  • 25.
  • 26.
  • 27. Tweet button Implementing ⇢simple JavaScript to drop onto your site ⇢allows you to share URLs, and to recommend people to follow Back-end ⇢high speed URL counting API
  • 28. Follow me at Questions? twitter.com/raffi