Giter Site home page Giter Site logo

ifthikhan / rauth Goto Github PK

View Code? Open in Web Editor NEW

This project forked from litl/rauth

1.0 2.0 1.0 753 KB

A Python library for OAuth 1.0/a, 2.0, and Ofly.

Home Page: http://readthedocs.org/docs/rauth/en/latest/

License: MIT License

Python 73.42% JavaScript 26.58%

rauth's Introduction

Rauth: OAuth 1.0/a, 2.0, and Ofly for Python

This package provides OAuth 1.0/a, 2.0, and Ofly consumer support. The package is wrapped around the superb Python Requests.

build status

Installation

Install the package with one of the following commands:

$ easy_install rauth

or

$ pip install rauth

Features

  • Built on Requests
  • Supports OAuth 1.0, 1.0a, 2.0 and Ofly
  • Service wrappers for convenient connection initialization
  • Well tested (100% coverage)

Example Usage

Using the package is quite simple. Ensure that Python Requests is installed. Import the relevant module and start utilizing OAuth endpoints!

Let's get a user's Twitter timeline. Start by creating a service container object:

from rauth.service import OAuth1Service

# Get a real consumer key & secret from https://dev.twitter.com/apps/new
twitter = OAuth1Service(
    name='twitter',
    consumer_key='YOUR_CONSUMER_KEY',
    consumer_secret='YOUR_CONSUMER_SECRET',
    request_token_url='https://api.twitter.com/oauth/request_token',
    access_token_url='https://api.twitter.com/oauth/access_token',
    authorize_url='https://api.twitter.com/oauth/authorize',
    header_auth=True)

Then get an OAuth 1.0 request token:

request_token, request_token_secret = \
    twitter.get_request_token(method='GET')

Go through the authentication flow. Since our example is a simple console application, Twitter will give you a PIN to enter.

authorize_url = twitter.get_authorize_url(request_token)

print 'Visit this URL in your browser: ' + authorize_url
pin = raw_input('Enter PIN from browser: ')

Exchange the authorized request token for an access token:

response = twitter.get_access_token('GET',
                                    request_token=request_token,
                                    request_token_secret=request_token_secret,
                                    params={'oauth_verifier': pin})
data = response.content

access_token = data['oauth_token']
access_token_secret = data['oauth_token_secret']

And now we can fetch our Twitter timeline!

params = {'include_rts': 1,  # Include retweets
          'count': 10}       # 10 tweets

response = twitter.get('https://api.twitter.com/1/statuses/home_timeline.json',
                       params=params,
                       access_token=access_token,
                       access_token_secret=access_token_secret,
                       header_auth=True)

for i, tweet in enumerate(response.content, 1):
    handle = tweet['user']['screen_name'].encode('utf-8')
    text = tweet['text'].encode('utf-8')
    print '{0}. @{1} - {2}'.format(i, handle, text)

The full example is in examples/twitter-timeline.py.

Documentation

The Sphinx-compiled documentation is available here: http://readthedocs.org/docs/rauth/en/latest/

Contribution

Anyone who would like to contribute to the project is more than welcome. Basically there's just a few steps to getting started:

  1. Fork this repo
  2. Make your changes and write a test for them
  3. Add yourself to the AUTHORS file and submit a pull request!

Note: it's important that the code base remain well-tested so to this end it's generaly advisable to include a unit test. To make sure that we retain 100% coverage run python setup.py test before making a pull request. You'll need to make sure you have pyflakes, pep8, coverage, mock, and nose installed; pip install pyflakes pep8 coverage mock nose.

Copyright and License

Rauth is Copyright (c) 2012 litl, LLC and licensed under the MIT license. See the LICENSE file for full details.

rauth's People

Contributors

maxcountryman avatar joeshaw avatar leftium avatar neogenix avatar randomir avatar mishok13 avatar ifthikhan avatar marekrei avatar barberj avatar netdude78 avatar bbigras avatar xevix avatar eventh avatar candeira avatar joelverhagen avatar sjl avatar takluyver avatar montylounge avatar

Stargazers

 avatar

Watchers

 avatar James Cloos avatar

Forkers

mishok13

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.