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.1 (6 June 2014)
New install target [rsa] for people using OAuth1 RSA-SHA1 signature method.
Fixed bug in OAuth2 where supplied state param was not used in auth url.
OAuth2 HTTPS checking can be disabled by setting environment variable OAUTHLIB_INSECURE_TRANSPORT.
OAuth1 now re-authorize upon redirects.
OAuth1 token fetching now raise a detailed error message when the response body is incorrectly encoded or the request was denied.
Added support for custom OAuth1 clients.
OAuth2 compliance fix for Sina Weibo.
Multiple fixes to facebook compliance fix.
Compliance fixes now re-encode body properly as bytes in Python 3.
Logging now properly done under requests_oauthlib namespace instead of piggybacking on oauthlib namespace.
Logging introduced for OAuth1 auth and session.
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.
State param can now be supplied in OAuth2Session.authorize_url
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file requests-oauthlib-0.4.1.tar.gz
.
File metadata
- Download URL: requests-oauthlib-0.4.1.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6d2550c4fefc2a03d7422caf61e72ca7827854e0deefe201deb34a91527d88e |
|
MD5 | 4e5125f249580ae4f815d7291f505124 |
|
BLAKE2b-256 | 4626cf5980a8723bcf1a0d0e6c6bb4b239113770cfc0394e6be2460ca1519875 |
File details
Details for the file requests_oauthlib-0.4.1-py2.py3-none-any.whl
.
File metadata
- Download URL: requests_oauthlib-0.4.1-py2.py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fac20375619e8ba23227a85baa281c6d9a33a45e111be61ddbaafa78212775b |
|
MD5 | 86d3d4d47d67cc9c9ad12bee2e2c3a39 |
|
BLAKE2b-256 | 90188a738df7630c5bf9db4aa41713ee24e157d873ef3bb62ed342be3249fc0a |