web-dev-qa-db-ja.com

Google OAuth 2:トークンリクエストでのresponse_typeエラー

OAuth 2応答コードのOAuth応答トークンを返そうとしています。しかし、私のリクエストは次のエラーを返し、Googleでの結果はゼロです。I response_typeを「コード」ではなく「トークン」に変更しようとしましたが、それも機能しませんでした。

OAuth 2パラメーターは単一の値のみを持つことができます:response_type

リクエストの詳細:

scope=https://www.googleapis.com/auth/userinfo.email
client_secret=_____
response_type=code
grant_type=authorization_code
redirect_uri=http://localhost/folder/
client_id=____.apps.googleusercontent.com
code=_____

この2番目のステップのペイロードをPOST https://accounts.google.com/o/oauth2/authに送信します

私のリクエストの何が問題になっていますか?

編集

このリクエストに使用する必要のあるhttps://accounts.google.com/o/oauth2/tokenURLがあることに気づきました。ただし、そのURLに変更すると、次のようになります。

HTTP/1.0 400 Bad Request
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Date: Fri, 27 Jul 2012 22:44:35 GMT
Content-Type: application/json
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE

{
  "error" : "invalid_request"
}

編集2

response_typeを削除し、上記のようにURLを変更すると、これが解決しました。

10
Xeoncross

認証コードを受け取ったら、「/ o/oauth2/token」にアクセストークンを要求する必要があります。このリクエストは、「scope」および「response_type」パラメータを取りません。詳細については、 Googleドキュメント を参照してください。

5
Jan Gerlinger

いくつかのメソッドを試した後、OAUTH2呼び出しを行うために必要なパラメーターは、redirect_uri、response_type、scope、client_idです。受け取ったエラーレポートに基づいて、oauth呼び出しのデバッグを続けました。

2
Paul