Developing for @twitterapi (Techcrunch Disrupt Hackathon)


Published on

Published in: Technology
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Developing for @twitterapi (Techcrunch Disrupt Hackathon)

  1. 1. Techcrunch hackathon!
  2. 2. At the Techcr unch DisruptHa 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. 3. >660K Developers on @twitterAPI
  4. 4. >900K applications +The Officially Owned and Operated ones
  5. 5. The opportunityAnalyticsContent 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.PublishingEnterprise
  6. 6. Every tweet that comes from quora totwitter results in 30 clicks per tweet.⇢ Charlie Cheever, Co-Founder
  7. 7. Flipboard sees 50-80% lift in retentionfrom users who have signed intoTwitter versus those who have not.
  8. 8. Twitter is just three things:Tweets,relationships between those threeAnd the users, anD Timelines
  9. 9. What is the @TwitterAPI?REST API⇢provides Twitter functionality⇢read / write / read DM (Tweet, Follow, DM, etc.)Search API⇢real-time search indexStreaming API⇢HTTP long poll connection⇢Tweets in real-time
  10. 10. Using the system 13B API calls 150,000 calls per day ≈ per second
  11. 11. Three main objectsStatus Objects → the Tweet (text, author, and metadata)User objects → username, screen name, avatarTimelines → orderings of Tweets
  12. 12. The tweets unique ID. These Text of the tweet. IDs are roughly sorted & Consecutive duplicate tweets developers should treat them are rejected. 140 character as opaque ( max ( DEPRECATED {"id"=>12296272736, "text"=> "An early look at Annotations:", Tweets "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. Wont "in_reply_to_status_id"=>nil be set unless the author of theThe authors 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 authors {"id"=>6253282, user name. The authors "screen_name"=>"twitterapi", The authors 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. Dont get an answer? Its on my website.", "url"=>"", The authors "location"=>"San Francisco, CA", URL. The authors "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"=> "", Rendering information "profile_background_tile"=>false, for the author. Colors "profile_image_url"=>"", are encoded in hex "profile_link_color"=>"0000ff", values (RGB). "profile_sidebar_border_color"=>"87bc44", The creation date
  13. 13. Timelinesuser → a the Tweets a given user has authoredhome → the main timeline you would see in a clientMentions → all the Tweets that @mention a user
  14. 14. Causing changeTweeting → a POST to status/updateFollowing → a POST to friendships/createDM-ing → a POST to direct_messages/new
  15. 15. AuthenticationOAuth 1.0a⇢ signature based requests⇢ user driven access to the API⇢ client differentiated access to the APIApplications don’t have passwords⇢ applications store tokens for their users⇢ users can change passwords, but tokens still workOAuth 2.0⇢ coming soon!
  16. 16. Limits350 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 dayStatus Limits⇢ can’t send “duplicate” tweets
  17. 17. Streaming APIPersistent connections⇢get pushed a tweet, in real-time, that matches your predicate⇢“push” version of search⇢read-onlyUser streams / Site streams⇢re-create the client experience using streams⇢great for “client” experiences
  18. 18. Latency200ms100ms 0ms
  19. 19. Streaming API’s Sample hose curl⇢uses basic authentication⇢one connection per username
  20. 20. Streaming API’s Track and follow⇢watch a particular keyword⇢up to 200 can be sent as CSV with track parameterFollow⇢get all the tweets (RTs, etc.) from a particular user⇢up to 400 can be issued as CSV with follow parameter
  21. 21. Search APIReal-time search index⇢Tweets indexed in <10 seconds⇢1.5 billion requests a daySearch Corpus⇢index goes back 7-10 days depending on traffic⇢contains the best quality Tweets
  22. 22. Querying the Search API !Use Curl⇢ unauthenticated⇢ rate-limited by IP addressParameters⇢ 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. 23. Tools of the⇢ documentation central⇢ create and register new applicationstwurl⇢ OAuth enabled version of curl⇢ allows you to manually test authenticated and unauthenticated RESTTwitter for Mac⇢ built in “developer console”
  24. 24. Tweet buttonImplementing⇢simple JavaScript to drop onto your site⇢allows you to share URLs, and to recommend people to followBack-end⇢high speed URL counting API
  25. 25. Follow me atQuestions?