Skip to content

Instantly share code, notes, and snippets.

@maniankara
Forked from eruffaldi/gettoken.sh
Last active January 7, 2024 16:18
Show Gist options
  • Save maniankara/47e5debe9008abe15e6bcff99d550fe2 to your computer and use it in GitHub Desktop.
Save maniankara/47e5debe9008abe15e6bcff99d550fe2 to your computer and use it in GitHub Desktop.
Google OAuth 2.0 full example bash script.
#!/bin/bash
# Bash script for generating OAuth token for Google admin user fetching
#1) on https://console.developers.google.com/ register project and associate API from library
# OUTPUT: client_id,client_secret
client_id="..."
client_secret="...."
#2) get authorization code at the following link using web browser
# OUTPUT: code
scopes="https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/admin.directory.user.readonly"
url="https://accounts.google.com/o/oauth2/auth?client_id=$client_id&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=$scopes&response_type=code"
code="..."
#3) use the code to obtain a OAuth2.0 Token
# OUTPUT: token and refresh_token in JSON
curl --request POST --data "code=$code&client_id=$client_id&client_secret=$client_secret&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token
refresh_token="..."
token="..."
#4) refresh if needed
curl --request POST --data "client_id=$client_id&client_secret=$client_secret&refresh_token=$refresh_token&grant_type=refresh_token" https://accounts.google.com/o/oauth2/token
#5) get status of token
curl "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=$token"
#6) use the token in a specific API (assed ass access_token=$token)
#docid="...."
#curl "https://docs.google.com/spreadsheets/d/$docid/export?format=csv&access_token=$token"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment