2016-08-16 7 views
0

私はangular.jsを使用してdropboへの接続を構築しようとしています。これについては、私はhttps://api.dropboxapi.com/1/oauth2/tokenへのリクエストを行う次のコードを持っています。Angular dropbox api/token endpointが無効なリクエストを返します

コードは、ユーザーがクリックスルーしてからdropboxの確認URLまで戻った後のURLで取得されます。 $ scope.accessUrl = 'https://www.dropbox.com/1/oauth2/authorize?client_id=szj63bffo9rp5v7&response_type=' + $ scope.response_type + '& redirect_uri =' + $ scope.redirect_uri; これは、コードがgetを介して返され、以下の関数で利用できるため、動作するようです。

  $http({ 
       method: 'POST', 
       grant_type: 'authorization_code', 
       code: <<<<token>>>>, 
       client_id: '<<<<mydropbox.key>>>>', 
       client_secret: '<<<<mydropbox.secret>>>>', 
       redirect_uri: "http://localhost:8080", 

       contentType: "application/json", 
       url: "https://api.dropboxapi.com/1/oauth2/token" 
      }) 

しかし、私はこの作業を取得しようとしましたが、それは私が立ち往生しています。私は、このエラーを引き起こしているかわからないんだけど、それは常に次の応答である: エラー:「INVALID_REQUEST」 ましたerror_description:「指定された要求のために利用可能な認証機能」

、HTTPステータスコードは常に400である(悪いです要求)。

私は新しい角度です。同様の$ http要求が別のエンドポイントで機能しています。このエンドポイントでは、私はベアラーを入れました:< < < <上記の破損した関数から返されるべき認証キーは、>>>>のURLと本体のデータ{}のパスです。

誰かが私が間違っていることを知っているなら、それはおそらく愚かな間違いだと思いますが、私はいくつかの助けが大好きです。

答えて

0

辞書にはdataというプロパティで必要なデータを渡す必要があります。 https://docs.angularjs.org/api/ng/service/$http#usage

ヘッダーにデータを渡す必要がある場合は、headersプロパティを使用してください。 https://docs.angularjs.org/api/ng/service/$http#setting-http-headers

 $http({ 
      method: 'GET', 
      data: { 
       grant_type: 'authorization_code', 
       code: <<<<token>>>>, 
       client_id: '<<<<mydropbox.key>>>>', 
       client_secret: '<<<<mydropbox.secret>>>>', 
       redirect_uri: "http://localhost:8080" 
      }, 
      contentType: "application/json", 
      url: "https://api.dropboxapi.com/1/oauth2/token" 
     }) 
+0

ありがとうございます!それは多くの意味があります。ただし、これを変更してもDropbox APIの応答は変わりません。{"error_description": "指定されたリクエストで使用できる認証機能がありません"、 "error": "invalid_request"} – Hine

+0

'GET'リクエスト'POST'の代わりに。私の答えを編集しました。 – atn

0

私は最終的に答えを見つけました。 dropboxのAPIドキュメントは、私がcontentType: "application/x-www-form-urlencoded"を送信しなければならないという事実を知らなかった。

彼らは一般的にあなたがjsonを送るべきであることに気づいたので、特に言及されない限り、これは真実であると私は仮定した。

関連する問題