web-dev-qa-db-ja.com

Googleを取得する方法OAuth 2.0 curlを使用して直接アクセストークン?(Googleライブラリを使用せずに)

this チュートリアルに従って、OAuth 2.0 APIを使用してGoogleで認証を行います。ライブラリを使用するのではなく、まっすぐcurl呼び出しを行います。

クライアントIDとクライアントシークレットキーを取得しました。今、私はこのようなアクセストークンを取得しようとしています:

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"

ただし、機能していません。次のエラーが表示されます。

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

誰かがアクセストークン(および更新トークン)を取得するためのcurl呼び出しのサンプルを提供してもらえますか?

16
Saqib Ali

a)提供するデータはJSONオブジェクトとして提示するのではなく、フォームエンコードする必要があります。b)「code」パラメーターで認証コード値も提供する必要があります。例えば。:

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.