Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Google OAuth 2.0 full example bash script.
#!/bin/bash
#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
scope="https://www.googleapis.com/auth/drive"
url="https://accounts.google.com/o/oauth2/auth?client_id=$client_id&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=$scope&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 "--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"
@vcollado

This comment has been minimized.

Copy link

vcollado commented Nov 10, 2018

At line 21,

curl --request POST --data "--data 'client_id=$client_id&client_secret=$client_secret&refresh_token=$refresh_token&grant_type=refresh_token" https://accounts.google.com/o/oauth2/token

It must be without the extra --data

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"

@ToddAndMargo

This comment has been minimized.

Copy link

ToddAndMargo commented Mar 19, 2020

Question: Line 27 docid="....", where does this value come from?

Request: would you post an example of sending a cURL smtp message with OAuth2 though gmail?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.