DraxCodes revised this gist . Go to revision
1 file changed, 34 insertions
test.py(file created)
| @@ -0,0 +1,34 @@ | |||
| 1 | + | import google.auth.transport.requests | |
| 2 | + | import google_auth_oauthlib.flow | |
| 3 | + | ||
| 4 | + | CLIENT_SECRETS_FILE = "client_secrets.json" | |
| 5 | + | SCOPES = ["openid", "https://www.googleapis.com/auth/userinfo.profile", "https://www.googleapis.com/auth/userinfo.email"] | |
| 6 | + | ||
| 7 | + | def authenticate_user(): | |
| 8 | + | flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file( | |
| 9 | + | CLIENT_SECRETS_FILE, SCOPES) | |
| 10 | + | ||
| 11 | + | credentials = flow.run_local_server(port=0) | |
| 12 | + | ||
| 13 | + | return credentials | |
| 14 | + | ||
| 15 | + | def main(): | |
| 16 | + | credentials = authenticate_user() | |
| 17 | + | ||
| 18 | + | #Test print to see the request | |
| 19 | + | #print("OAuth Credentials:", json.dumps(credentials.to_json(), indent=2)) | |
| 20 | + | ||
| 21 | + | user_info_url = "https://www.googleapis.com/oauth2/v2/userinfo" | |
| 22 | + | headers = {"Authorization": f"Bearer {credentials.token}"} | |
| 23 | + | ||
| 24 | + | response = google.auth.transport.requests.Request().session.get(user_info_url, headers=headers) | |
| 25 | + | ||
| 26 | + | if response.status_code == 200: | |
| 27 | + | user_info = response.json() | |
| 28 | + | print("Logged-in User's Google Name:", user_info.get("name")) | |
| 29 | + | print("Logged-in User's Google Email:", user_info.get("email")) | |
| 30 | + | else: | |
| 31 | + | print("Failed to retrieve user information.") | |
| 32 | + | ||
| 33 | + | if __name__ == "__main__": | |
| 34 | + | main() | |
Newer
Older