How to get Google OAuth 2.0 Access token directly using curl? (without using Google Libraries)
Solution 1
a) the data you provide should be form-encoded instead of presented as a JSON object and b) you should also provide an authorization code value in the "code" parameter. E.g.:
curl -d "client_id=MY_CLIENT_ID&\
client_secret=MY_SECRET_KEY&\
redirect_uri=http://localhost/etc&\
grant_type=authorization_code&\
code=CODE" https://oauth2.googleapis.com/token
Solution 2
While not directly using CURL, you can also get and test OAuth tokens using the Google OAuth Playground: https://developers.google.com/oauthplayground/
Related videos on Youtube
Saqib Ali
Updated on November 08, 2020Comments
-
Saqib Ali over 3 years
I'm trying to follow this tutorial to authenticate with Google using their OAuth 2.0 API. However, I would like to make straight
curl
calls rather than use their libraries.I have obtained my Client ID and Client Secret Key. Now I'm trying to get the access token like this:
curl \ --request POST \ --header "Content-Type: application/json" \ --data '{ "client_id":"MY_CLIENT_ID", "client_secret":"MY_SECRET_KEY", "redirect_uri": "http://localhost/etc", "grant_type":"authorization_code" }' \ "https://accounts.google.com/o/oauth2/token"
However, it is not working. It gives me the following error:
{ "error" : "invalid_request", "error_description" : "Required parameter is missing: grant_type" }
Can someone please provide me sample curl call to obtain the access token (and refresh token)?
-
Jay Lee almost 8 yearsTake a look at: stackoverflow.com/a/18260206/1503886
-
-
Saqib Ali almost 8 yearsIs this a get or a post?
-
Hans Z. almost 8 yearsUsing
-d
automatically turns it in to a POST and sets the desired content type -
Wheezil over 5 yearsCan this technique be extended to cover two-legged OAuth2?
-
Tad over 4 yearsThe code parameter comes from the original auth request: developers.google.com/android-publisher/authorization