Created
June 8, 2022 00:04
-
-
Save dlazesz/b7e42daf6303c42bc62761d7b66bca21 to your computer and use it in GitHub Desktop.
Google API OAuth 2.0 Authorization Sample in Python 3 (with requests-oauthlib)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from requests_oauthlib import OAuth2Session | |
# Credentials you get from registering a new application | |
client_id = "<the id you get from google>" | |
client_secret = "<the secret you get from google>" | |
# OAuth endpoints given in the Google API documentation | |
authorization_base_url = "https://accounts.google.com/o/oauth2/v2/auth" | |
token_url = "https://www.googleapis.com/oauth2/v4/token" | |
scope = [ | |
"openid", | |
"https://www.googleapis.com/auth/userinfo.email", | |
"https://www.googleapis.com/auth/userinfo.profile" | |
] | |
google = OAuth2Session(client_id, scope=scope, redirect_uri="oob") | |
# Redirect user to Google for authorization | |
authorization_url, state = google.authorization_url(authorization_base_url, | |
# offline for refresh token | |
# force to always make user click authorize | |
access_type="offline", prompt="select_account") | |
print("Please go here and authorize:", authorization_url) | |
# Get the authorization verifier code from the callback url | |
code = input("Paste the authorization code: ") | |
print() # New line after the input line for the next print | |
# Fetch the access token | |
google.fetch_token(token_url, client_secret=client_secret, | |
code=code) | |
# Print the token | |
print(google.access_token) | |
# Fetch a protected resource, i.e. user profile | |
r = google.get("https://www.googleapis.com/oauth2/v1/userinfo") | |
print(r.content) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment