C4LN 2012: Intro to the Twitter API
From Code4Lib
Presenter: Rick Scott - @shadowspar
Contents
API Overview
- https://dev.twitter.com/ is API central.
- https://dev.twitter.com/docs is the main documentation area -- you'll spend a lot of time here =)
- other useful things linked from dev.twitter.com: API Status, API Known Issues, blog & discussion
Parts
- the REST API
- the Streaming API
- the Search API
REST API
- query→response based access
- the mainstay of the API; the first part of it you'll want to be concerned with, and the part you'll likely use most
Streaming API
- aka drinking from the firehose =)
- persistent connection
- push-based communication w/ v.high ratelimit (1% of all tweets)
Search API
- just like it says on the tin
- also trending topics
Find your library
https://dev.twitter.com/docs/twitter-libraries has a good list
- Perl: Net::Twitter
- Python: tweepy and many others
- Ruby: twitter rubygem and others
Creating a new app
First steps
- https://dev.twitter.com/apps/new
- sign in with your twitter account
- fill out basic info about your app
- agree to be a good citizen, as detailed below
Huzzah! You have your very own app!
A brief segue into OAuth
http://hueniverse.com/oauth/guide/intro/
OAuth metaphor: valet key to your car
- lets an app act on behalf of a user when dealing with some service
- lets a user give an app specific permissions to interact with a service on their behalf
Roles in OAuth:
- consumer (client) -- your app
- service provider (server) -- Twitter
- user (resource owner) -- user
- receive OAuth keys
- consumer_key
- consumer_secret
Setup
- tabs we're initially interested in: Details & Settings
- Settings tab:
- Application type:
- Read
- Read/Write
- Read/Write/Access DMs
- Application type:
Bot-specific stuff
- create an account for your bot
- authorize it on your app
Rules of Conduct
General Rules of the Road and TOS
- https://dev.twitter.com/terms/api-terms
- https://support.twitter.com/articles/76915 - automation rules and best practices
Rate limits
Other gotchas
- Repeated tweets
Example
http://twitter.com/inetkami https://github.com/rickscott/inetkami
Other Miscellany
- t, a Ruby command-line interface to the Twitter API