10

何が間違っているのかわかりませんが、トークンを取得しようとするたびに(もちろんユーザー認証後)、結果は常に無効なgrant_typeパラメーターまたはパラメーターがありません

Box APIに関連している可能性がありますが、アクセストークンの取得時に常に無効なgrant_typeパラメータを返します

これが私のフィドラーの結果です:

POST https://api.box.com/oauth2/token HTTP/1.1
Host: api.box.com
Content-Length: 157
Expect: 100-continue
Connection: Keep-Alive

grant_type=authorization_code&code=nnqtYcoik7cjtHQYyn3Af8uk4LG3rYYh&client_id=[myclientId]&client_secret=[mysecret]

結果:

HTTP/1.1 400 Bad Request
Server: nginx
Date: Thu, 07 Mar 2013 11:18:36 GMT
Content-Type: application/json
Connection: keep-alive
Set-Cookie: box_visitor_id=5138778bf12a01.27393131; expires=Fri, 07-Mar-2014 11:18:35 GMT; path=/; domain=.box.com
Set-Cookie: country_code=US; expires=Mon, 06-May-2013 11:18:36 GMT; path=/
Cache-Control: no-store
Content-Length: 99

{"error":"invalid_request","error_description":"Invalid grant_type parameter or parameter missing"}

カールの例に従ったとしても、同じエラーが発生します。どんな助けでもいただければ幸いです。

編集:追加のredirect_uriパラメータで試しましたが、それでも同じエラーです

POST https://api.box.com/oauth2/token HTTP/1.1
Content-Type: application/json; charset=UTF-8
Host: api.box.com
Content-Length: 187
Expect: 100-continue
Connection: Keep-Alive

grant_type=authorization_code&code=R3JxS7UPm8Gjc0y7YLj9qxifdzBYzLOZ&client_id=*****&client_secret=*****&redirect_uri=http://localhost

結果:

HTTP/1.1 400 Bad Request
Server: nginx
Date: Sat, 09 Mar 2013 00:46:38 GMT
Content-Type: application/json
Connection: keep-alive
Set-Cookie: box_visitor_id=513a866ec5cfe0.48604831; expires=Sun, 09-Mar-2014 00:46:38 GMT; path=/; domain=.box.com
Set-Cookie: country_code=US; expires=Wed, 08-May-2013 00:46:38 GMT; path=/
Cache-Control: no-store
Content-Length: 99

{"error":"invalid_request","error_description":"Invalid grant_type parameter or parameter missing"}
4

5 に答える 5

19

Box ではContent-Type: application/x-www-form-urlencoded、パラメーターを適切に URL エンコードすることに加えて、正しい要求ヘッダーが必要なようです。リクエストの更新と取り消しにも同じことが当てはまるようです。

また、RFC 6749に従って、redirect_uri

セクション 4.1.1 で説明されているように、「redirect_uri」パラメーターが承認要求に含まれていた場合は必須であり、それらの値は同一でなければなりません。

于 2013-03-15T16:45:40.860 に答える
1

リダイレクト URI パラメータがありません。試す:

POST https://api.box.com/oauth2/token HTTP/1.1
Host: api.box.com
Content-Length: 157
Expect: 100-continue
Connection: Keep-Alive

grant_type=authorization_code&code=nnqtYcoik7cjtHQYyn3Af8uk4LG3rYYh&client_id=[myclientId]&client_secret=[mysecret]&redirect_uri=[your-redirect-uri]
于 2013-03-07T16:44:12.030 に答える