2016-09-09 4 views
0

のデータをフェッチするとき、私は現在、NESTのAPIを使用して、非常にシンプルなアプリを開発しています:Tizenの摩耗:401応答エラー巣のAPIから

  • Tizen 2.3.1 SDK、
  • ウェブベース(JS、HTML、CSS )アプリケーション、
  • ウェアラブルデバイスは
  • サムスンギャラクシーS2ギアを動力見
  • スタンドアロンアプリ、対象と

問題: NEST APIからデータを取得しようとすると401エラーが表示されます。

まず私は、トークン取得していますし、それは完全に正常に動作します:

function authNest() { 
$.ajax({ 
    url: authUrl, 
    type: "POST", 
    dataType: "json", 
    success: function(data) { 
     console.log(data.access_token); 
     getNest(data.access_token); 
    }, 
    error: function(err) { 
     console.log(err); 
    } 
}); 

インターネット接続が動作し、私は適切な権限を持っている、私はきちんと携帯電話とペアリングしていますことを意味します。 トークンは確実に機能します。私はPostman、curlコマンドとアンドロイド用のRESTクライアントアプリ(3種類のソリューションは正常に動作します)で確認しました。

function get(token) { 
$.ajax({ 
    url: "https://developer-api.nest.com", 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("content-type", "application/json"); 
     xhr.setRequestHeader("authorization", "Bearer " + token); 
    }, 
    method: 'GET', 
    success: function (data) { 
     alert(JSON.stringify(data)); 
    }, 
    error: function(err){ 
     console.log(JSON.stringify(err)); 
    } 
}); 

しかし、その後、私はエラー応答を取得しています:私はそのトークンとREST API呼び出しを作ってるんだ、それはそのように見えるのトークンを取得した後

。私もXMLHttpRequest(ajax/jqueryなし)のみを使用してリクエストを試みました - 私は同じエラー応答を得ています。

エラー:

{ "readyState":4,
"responseText":"{\"error\":\"unauthorized\",\"type\":\" https://developer.nest.com/documentation/cloud/error-messages#auth-error \",\"message\":\"unauthorized\",\"instance\":\"bfd045c0-e7ff-4a75-bbba-e6199be03c4a\"}", "status":401, "statusText":"Unauthorized" }

だから私は少なくとも、サーバの応答を取得しています。しかし、私は承認していないし、私は完全にWTFを知りません。

TizenウェアにoAuth2.0の問題がいくつかありますか? 以前にトークンが返されたにもかかわらずサーバーが要求を受け入れたくないのはなぜですか? いくつかの隠れた制約がありますか?

もちろん、config.xmlでインターネット、network.internet、network.wifi、ダウンロード、場所などの機能と特権を定義しました。

Plsのヘルプ:)

答えて

0

は、次のことを試してください。

xhr.setRequestHeader("Content-Type", "application/json"); 
xhr.setRequestHeader("Authorization", "Bearer " + token); 

dataType: "json", 
+0

こんにちは。迅速な対応のためにthx。私はすでに別の形式でヘッダを追加しようとしました。動いていない。 –

+0

あなたはapiに何かを渡していませんか? – madalinivascu

+0

こんにちは。トークンやヘッダーのような基本情報を渡していますが、主な目的はAPIからjsonを取得することです。 :) –

0

を追加し、このソリューションを試してください:debbugingと検索の数時間後

url: "https://developer-api.nest.com?auth="+token 
1

私は答えを見つけました。 まず、Tizenブラウザが適切なヘッダーとトークンでリクエストを送信しています。 それから、307のHTTPコードが取得されました。 Chrome Developers Tools(コンソール+ネットワークタブ)などの外部ツールでは、デバッグなしでは表示されません。 Tizen Studio/sdbのdlogには何も表示されません! バックグラウンドで、Tizenは正しくリダイレ​​クトされますが、ほぼ正しくリダイレ​​クトされます。 エンドポイントへの2番目の要求にはヘッダーとトークンが含まれていないため、サーバー上で許可することはできません。だから私は最後に401を得たのです。

関連する問題