2017-04-14 6 views
0


私はAmazon Alexaのスキルを実装しています。ユーザーのジオロケーションを特定したいと考えていますが、http.getリクエストが機能していません。私は郵便配達所でそのリクエストを試みましたが、私は望みの結果を得ましたが、何が問題か分かりませんでした。リクエストURLは、https://api.amazonalexa.com/v1/devices/{deviceId}/settings/addressのように、承認ヘッダーAuthorization: Bearer {token}である必要があります。
は、ここに私のコード
Alexa node.js承認付きhttpリクエスト

try{ 
    var body = ""; 
    console.log('Authorization ', consentToken); 
    var response = ''; 

    var options = { 
     host: 'api.eu.amazonalexa.com', 
     path: '/v1/devices/'+deviceId+'/settings/address', 
     port: '443', 
     headers: {'Authorization': "Bearer "+consentToken}, 
     method: 'GET' 
    };  

    https.get(options, function(res) { 
     console.log('status', res.statusCode); 
     if (res.statusCode >= 200 && res.statusCode < 400) { 
      res.on('data', function(data_) { response += data_.toString(); }); 
      res.on('end', function() { 
      var data = JSON.parse(response); 
      console.log('data', data); 
      if (data.length > 0) 
       userLocation = data; 
      }); 
     } 
     }).on('error', function(e) { 
       console.log("errrrror",e); 
     }).on('uncaughtException', function (err) { 
       console.log('uncaughtException',err); 
     }); 
    } 
    catch(error) { 
     console.log('getAndProcessUserLocation',error); 
} 

https.getが実行されていない理由を私は知らないです。エラーはスローされませんが、ログを取得できませんでした。
私はあなたのコードの残りの部分を見ることなくTHR公式サイト https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/device-address-api

+0

'https://api.amazonalexa.com/v1/device ...'と書かれている質問では、あなたのコードで 'api.eu.amazonalexa.com ... 'が正しいと思うでしょうか? – imTachu

答えて

1

からドキュメントを踏襲し、私の推測では、あなたが非同期的に扱っているAlexaの要求に指示されていないということですので、セッションが要求する前に終了しています完了する。

+0

非同期要求を処理する場合のベストプラクティスは何ですか? – Coder

+0

これは、使用しているAlexa SDKまたはフレームワークによって異なります。私はalexa-appを使用しています。そのフレームワークでは、インテントハンドラからPromiseを返すだけです。 –

関連する問題