Fun! with the Twitter API 
Stephanie Kim, @stephlkim 
Erin Shellman, @erinshellman 
! 
June 30, 2014 
Seattle PyLadies presents…
Every other Monday. 
http://www.meetup.com/Seattle-PyLadies/
Intro to Python 
http://www.meetup.com/Girl-Develop-It-Seattle/
APIs describe how 
software communicates 
• Application Programming Interfaces often come in 
the form of a module containing specialized 
classes.
REST APIs interface consumers 
with resources on a server 
• Representational state transfer (REST) 
• REST APIs are specifications of remote calls 
exposed to API consumers. 
1. Separate client from server. 
2. Stateless. 
3. Use HTTP/HTTPS.
What could you build?
OAuth 
OAuth is an open standard that 
allows us to access protected 
resources hosted by a resource 
server. 
https://dev.twitter.com/docs/auth/authorizing-request
Lets get some tokens! 
https://apps.twitter.com/
Reading documentation is 90% 
https://dev.twitter.com/docs/api/1.1
Request verbs 
• There are 5 common methods a client can apply to a 
resource: 
• GET 
• HEAD 
• POST 
• PUT 
• DELETE
The anatomy of a request 
• Request Line - Tells the server what type of 
request is being sent (e.g. GET, POST, PUT, DELETE) 
• Header - Send over any required values, like 
security tokens. 
• Body - What resource are you asking for?
request line 
header 
body
Responses 
• A successful request to the server results in a 
response, hopefully containing the resource you 
requested. 
• The response will contain a 3-digit status code 
starting with 1, 2, 3, 4, or 5.
Response Codes 
• 1__: Working on the request. 
• 2__: Everything’”⁹s cool. 
• 3__: Everything’”⁹s cool, but something else is 
happening. 
• 4__: Oh man, not cool. 
• 5__: The server errored out. 
See: https://dev.twitter.com/docs/error-codes-responses
The response also has a 
response line, header and body 
• Similarly to the request, a response contains a 
response line, a header and a body.
https://github.com/Seattle-PyLadies/TwitterApiWorkshop
https://dev.twitter.com/docs/api/1.1/get/statuses/retweets_of_me
https://dev.twitter.com/docs/api/1.1/post/statuses/update
Make your own!
Teaser for next time: 
http://it-stinks.herokuapp.com/
Resources 
1. Programmable Web. http:// 
www.programmableweb.com/ 
2. Designing a RESTful API with Flask. http:// 
blog.miguelgrinberg.com/post/designing-a-restful-api-with- 
python-and-flask 
3. Cool mashups made possible with APIs. http:// 
mashable.com/2009/10/08/top-mashups/ 
4. Great book about REST APIs. http://www.amazon.com/ 
RESTful-Web-APIs-Leonard-Richardson-ebook/dp/ 
B00F5BS966

Fun! with the Twitter API

  • 1.
    Fun! with theTwitter API Stephanie Kim, @stephlkim Erin Shellman, @erinshellman ! June 30, 2014 Seattle PyLadies presents…
  • 3.
    Every other Monday. http://www.meetup.com/Seattle-PyLadies/
  • 4.
    Intro to Python http://www.meetup.com/Girl-Develop-It-Seattle/
  • 5.
    APIs describe how software communicates • Application Programming Interfaces often come in the form of a module containing specialized classes.
  • 8.
    REST APIs interfaceconsumers with resources on a server • Representational state transfer (REST) • REST APIs are specifications of remote calls exposed to API consumers. 1. Separate client from server. 2. Stateless. 3. Use HTTP/HTTPS.
  • 9.
  • 11.
    OAuth OAuth isan open standard that allows us to access protected resources hosted by a resource server. https://dev.twitter.com/docs/auth/authorizing-request
  • 12.
    Lets get sometokens! https://apps.twitter.com/
  • 13.
    Reading documentation is90% https://dev.twitter.com/docs/api/1.1
  • 14.
    Request verbs •There are 5 common methods a client can apply to a resource: • GET • HEAD • POST • PUT • DELETE
  • 15.
    The anatomy ofa request • Request Line - Tells the server what type of request is being sent (e.g. GET, POST, PUT, DELETE) • Header - Send over any required values, like security tokens. • Body - What resource are you asking for?
  • 16.
  • 17.
    Responses • Asuccessful request to the server results in a response, hopefully containing the resource you requested. • The response will contain a 3-digit status code starting with 1, 2, 3, 4, or 5.
  • 18.
    Response Codes •1__: Working on the request. • 2__: Everything’”⁹s cool. • 3__: Everything’”⁹s cool, but something else is happening. • 4__: Oh man, not cool. • 5__: The server errored out. See: https://dev.twitter.com/docs/error-codes-responses
  • 19.
    The response alsohas a response line, header and body • Similarly to the request, a response contains a response line, a header and a body.
  • 20.
  • 24.
  • 26.
  • 31.
  • 32.
    Teaser for nexttime: http://it-stinks.herokuapp.com/
  • 33.
    Resources 1. ProgrammableWeb. http:// www.programmableweb.com/ 2. Designing a RESTful API with Flask. http:// blog.miguelgrinberg.com/post/designing-a-restful-api-with- python-and-flask 3. Cool mashups made possible with APIs. http:// mashable.com/2009/10/08/top-mashups/ 4. Great book about REST APIs. http://www.amazon.com/ RESTful-Web-APIs-Leonard-Richardson-ebook/dp/ B00F5BS966