Developing for @twitterapi (Techcrunch Disrupt Hackathon)

R
Raffi KrikorianPlatform Team Member
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”
Developing for @twitterapi (Techcrunch Disrupt Hackathon)
Developing for @twitterapi (Techcrunch Disrupt Hackathon)
Developing for @twitterapi (Techcrunch Disrupt Hackathon)
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
1 of 28

Recommended

Map-of-a-tweet by
Map-of-a-tweetMap-of-a-tweet
Map-of-a-tweetEdwin Ritter
307 views1 slide
Intro to developing for @twitterapi by
Intro to developing for @twitterapiIntro to developing for @twitterapi
Intro to developing for @twitterapiRaffi Krikorian
10.5K views99 slides
Intro to developing for @twitterapi (updated) by
Intro to developing for @twitterapi (updated)Intro to developing for @twitterapi (updated)
Intro to developing for @twitterapi (updated)Raffi Krikorian
2.6K views64 slides
What's happening here? by
What's happening here?What's happening here?
What's happening here?Raffi Krikorian
2.1K views32 slides
Spring 2.0 by
Spring 2.0Spring 2.0
Spring 2.0goutham v
526 views24 slides
Chatting with HIpChat: APIs 101 by
Chatting with HIpChat: APIs 101Chatting with HIpChat: APIs 101
Chatting with HIpChat: APIs 101colleenfry
1.9K views155 slides

More Related Content

Similar to Developing for @twitterapi (Techcrunch Disrupt Hackathon)

HATEOAS 101 - Opinionated Introduction to a REST API Style by
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
108.2K views140 slides
Development of Twitter Application #2 - Twitter for Websites by
Development of Twitter Application #2 - Twitter for WebsitesDevelopment of Twitter Application #2 - Twitter for Websites
Development of Twitter Application #2 - Twitter for WebsitesMyungjin Lee
1.6K views22 slides
Api by
ApiApi
Apirandyhoyt
919 views92 slides
Introduction to Active Record - Silicon Valley Ruby Conference 2007 by
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 .
18K views60 slides
Ams adapters by
Ams adaptersAms adapters
Ams adaptersBruno Alló Bacarini
264 views62 slides

Similar to Developing for @twitterapi (Techcrunch Disrupt Hackathon)(20)

HATEOAS 101 - Opinionated Introduction to a REST API Style by Apigee | Google Cloud
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
Apigee | Google Cloud108.2K views
Development of Twitter Application #2 - Twitter for Websites by Myungjin Lee
Development of Twitter Application #2 - Twitter for WebsitesDevelopment of Twitter Application #2 - Twitter for Websites
Development of Twitter Application #2 - Twitter for Websites
Myungjin Lee1.6K views
Introduction to Active Record - Silicon Valley Ruby Conference 2007 by Rabble .
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
Rabble .18K views
Intro to Rails ActiveRecord by Mark Menard
Intro to Rails ActiveRecordIntro to Rails ActiveRecord
Intro to Rails ActiveRecord
Mark Menard2.7K views
Top 10 Web Security Vulnerabilities by Carol McDonald
Top 10 Web Security VulnerabilitiesTop 10 Web Security Vulnerabilities
Top 10 Web Security Vulnerabilities
Carol McDonald7.7K views
IBM Insight 2015 - 1824 - Using Bluemix and dashDB for Twitter Analysis by Torsten Steinbach
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
Torsten Steinbach387 views
Demystifying Initial Access in Azure by Gabriel Mathenge
Demystifying Initial Access in AzureDemystifying Initial Access in Azure
Demystifying Initial Access in Azure
Gabriel Mathenge279 views
Introduction to Active Record at MySQL Conference 2007 by Rabble .
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007
Rabble .2.5K views
Building a Production-ready Predictive App for Customer Service - Alex Ingerm... by PAPIs.io
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.io290 views
Tips and tricks for building api heavy ruby on rails applications by Tim Cull
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
Tim Cull7.3K views
Idea2app by Flumes
Idea2appIdea2app
Idea2app
Flumes839 views
devise tutorial - 2011 rubyconf taiwan by Tse-Ching Ho
devise tutorial - 2011 rubyconf taiwandevise tutorial - 2011 rubyconf taiwan
devise tutorial - 2011 rubyconf taiwan
Tse-Ching Ho2.1K views

More from Raffi Krikorian

Hacking Conway's Law by
Hacking Conway's LawHacking Conway's Law
Hacking Conway's LawRaffi Krikorian
5.1K views36 slides
Re-architecting on the Fly #OReillySACon by
Re-architecting on the Fly #OReillySACon Re-architecting on the Fly #OReillySACon
Re-architecting on the Fly #OReillySACon Raffi Krikorian
6.7K views131 slides
Real-time systems at Twitter (Velocity 2012) by
Real-time systems at Twitter (Velocity 2012)Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)Raffi Krikorian
10.6K views42 slides
Twitter: Engineering for Real-Time (Stanford ACM 2011) by
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
10.7K views140 slides
Securing Your Ecosystem (FOWA Las Vegas 2011) by
Securing Your Ecosystem (FOWA Las Vegas 2011)Securing Your Ecosystem (FOWA Las Vegas 2011)
Securing Your Ecosystem (FOWA Las Vegas 2011)Raffi Krikorian
4.7K views31 slides
#rtgeo (Where 2.0 2011) by
#rtgeo (Where 2.0 2011)#rtgeo (Where 2.0 2011)
#rtgeo (Where 2.0 2011)Raffi Krikorian
1.7K views87 slides

More from Raffi Krikorian(20)

Re-architecting on the Fly #OReillySACon by Raffi Krikorian
Re-architecting on the Fly #OReillySACon Re-architecting on the Fly #OReillySACon
Re-architecting on the Fly #OReillySACon
Raffi Krikorian6.7K views
Real-time systems at Twitter (Velocity 2012) by Raffi Krikorian
Real-time systems at Twitter (Velocity 2012)Real-time systems at Twitter (Velocity 2012)
Real-time systems at Twitter (Velocity 2012)
Raffi Krikorian10.6K views
Twitter: Engineering for Real-Time (Stanford ACM 2011) by 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)
Raffi Krikorian10.7K views
Securing Your Ecosystem (FOWA Las Vegas 2011) by Raffi Krikorian
Securing Your Ecosystem (FOWA Las Vegas 2011)Securing Your Ecosystem (FOWA Las Vegas 2011)
Securing Your Ecosystem (FOWA Las Vegas 2011)
Raffi Krikorian4.7K views
Twitter for CS10 @ Berkeley (Spring 2011) by Raffi Krikorian
Twitter for CS10 @ Berkeley (Spring 2011)Twitter for CS10 @ Berkeley (Spring 2011)
Twitter for CS10 @ Berkeley (Spring 2011)
Raffi Krikorian1K views
Twitter by the Numbers (Columbia University) by Raffi Krikorian
Twitter by the Numbers (Columbia University)Twitter by the Numbers (Columbia University)
Twitter by the Numbers (Columbia University)
Raffi Krikorian3.7K views
Twitter and the Real-Time Web by Raffi Krikorian
Twitter and the Real-Time WebTwitter and the Real-Time Web
Twitter and the Real-Time Web
Raffi Krikorian1.4K views
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010 by Raffi Krikorian
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
Twitter - Guest Lecture UC Berkeley CS10 Fall 2010
Raffi Krikorian2.4K views
How to use Geolocation in your webapp @ FOWA Dublin 2010 by Raffi Krikorian
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
Raffi Krikorian1K views
"What's Happening" to "What's Happening Here" @ Chirp by Raffi 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
Raffi Krikorian1.4K views
Handling Real-time Geostreams by Raffi Krikorian
Handling Real-time GeostreamsHandling Real-time Geostreams
Handling Real-time Geostreams
Raffi Krikorian1.6K views
Adding the "Where" to the "When" by Raffi Krikorian
Adding the "Where" to the "When"Adding the "Where" to the "When"
Adding the "Where" to the "When"
Raffi Krikorian1.9K views

Recently uploaded

virtual reality.pptx by
virtual reality.pptxvirtual reality.pptx
virtual reality.pptxG036GaikwadSnehal
18 views15 slides
Future of Indian ConsumerTech by
Future of Indian ConsumerTechFuture of Indian ConsumerTech
Future of Indian ConsumerTechKapil Khandelwal (KK)
24 views68 slides
PRODUCT PRESENTATION.pptx by
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
18 views1 slide
MVP and prioritization.pdf by
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
37 views8 slides
Info Session November 2023.pdf by
Info Session November 2023.pdfInfo Session November 2023.pdf
Info Session November 2023.pdfAleksandraKoprivica4
15 views15 slides
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
24 views52 slides

Recently uploaded(20)

Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56122 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
The Forbidden VPN Secrets.pdf by Mariam Shaba
The Forbidden VPN Secrets.pdfThe Forbidden VPN Secrets.pdf
The Forbidden VPN Secrets.pdf
Mariam Shaba20 views
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana17 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays24 views

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”
  • 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