Skip to main content

OAuthlib authentication support for Requests.

Project description

This project provides first-class OAuth library support for Requests.

The OAuth 1 workflow

OAuth 1 can seem overly complicated and it sure has its quirks. Luckily, requests_oauthlib hides most of these and let you focus at the task at hand.

Accessing protected resources using requests_oauthlib is as simple as:

>>> from requests_oauthlib import OAuth1Session
>>> twitter = OAuth1Session('client_key',
                            client_secret='client_secret',
                            resource_owner_key='resource_owner_key',
                            resource_owner_secret='resource_owner_secret')
>>> url = 'https://api.twitter.com/1/account/settings.json'
>>> r = twitter.get(url)

Before accessing resources you will need to obtain a few credentials from your provider (i.e. Twitter) and authorization from the user for whom you wish to retrieve resources for. You can read all about this in the full OAuth 1 workflow guide on RTD.

The OAuth 2 workflow

OAuth 2 is generally simpler than OAuth 1 but comes in more flavours. The most common being the Authorization Code Grant, also known as the WebApplication flow.

Fetching a protected resource after obtaining an access token can be as simple as:

>>> from requests_oauthlib import OAuth2Session
>>> google = OAuth2Session(r'client_id', token=r'token')
>>> url = 'https://www.googleapis.com/oauth2/v1/userinfo'
>>> r = google.get(url)

Before accessing resources you will need to obtain a few credentials from your provider (i.e. Google) and authorization from the user for whom you wish to retrieve resources for. You can read all about this in the full OAuth 2 workflow guide on RTD.

Installation

To install requests and requests_oauthlib you can use pip:

$ pip install requests requests_oauthlib

History

v0.4.0 (29 September 2013)

  • OAuth1Session methods only return unicode strings. #55.

  • Renamed requests_oauthlib.core to requests_oauthlib.oauth1_auth for consistency. #79.

  • Added Facebook compliance fix and access_token_response hook to OAuth2Session. #63.

  • Added LinkedIn compliance fix.

  • Added refresh_token_response compliance hook, invoked before parsing the refresh token.

  • Correctly limit compliance hooks to running only once!

  • Content type guessing should only be done when no content type is given

  • OAuth1 now updates r.headers instead of replacing it with non case insensitive dict

  • Remove last use of Response.content (in OAuth1Session). #44.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests-oauthlib-0.4.0.tar.gz (12.1 kB view details)

Uploaded Source

File details

Details for the file requests-oauthlib-0.4.0.tar.gz.

File metadata

File hashes

Hashes for requests-oauthlib-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c9f7ba22900114118747901e3b7835f4b67abbec537cb9d87f7bb5d31ff78d48
MD5 2649560205a02473998e0e7dd881ee5a
BLAKE2b-256 fe34f8b2d57505395cfd256f9e981186d8ff16a44ace96ddc07bab329b3be20c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page