web-dev-qa-db-fra.com

Comment obtenir Google OAuth 2.0 Jeton d'accès directement en utilisant curl? (Sans utiliser les bibliothèques Google)

J'essaie de suivre this tutoriel pour m'authentifier auprès de Google en utilisant leur OAuth 2.0 API. Cependant, je voudrais faire des appels directs curl plutôt que d'utiliser leurs bibliothèques.

J'ai obtenu mon ID client et ma clé secrète client. Maintenant, j'essaye d'obtenir le jeton d'accès comme ceci:

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"

Cependant, cela ne fonctionne pas. Cela me donne l'erreur suivante:

{
  "error" : "invalid_request",
  "error_description" : "Required parameter is missing: grant_type"
}

Quelqu'un peut-il me fournir un exemple d'appel curl pour obtenir le jeton d'accès (et actualiser le jeton)?

16
Saqib Ali

a) les données que vous fournissez doivent être codées sous forme au lieu d'être présentées comme un objet JSON et b) vous devez également fournir une valeur de code d'autorisation dans le paramètre "code". Par exemple.:

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
15
Hans Z.