2017-07-12 8 views
0

サービスシミュレータを使用して自分のAlexaスキルをテストするのが難しいです。 appIdを設定した場合、スキルは機能しません。ここに関連するコードは次のとおりです。Node.jsを使用してAlexa AppIdを設定する

'use strict'; 
const Alexa = require('alexa-sdk'); 

var APP_ID = "amzn1.ask.skill.[my skill ID]"; 

exports.handler = function(event, context, callback) { 
    var alexa = Alexa.handler(event, context); 
    alexa.appId = APP_ID; 
    alexa.registerHandlers(handlers); 
    alexa.execute(); 
} 

私はサービスシミュレータでこのコードを実行すると、私は「リモートエンドポイントを呼び出すことができなかった、またはそれが返された応答が無効でした。」の応答を取得しますそしてCloudWatchのログのエラーメッセージ:私はコメントアウトした場合

The applicationIds don't match: applicationId and amzn1.ask.skill.[my skill id] 
"errorMessage": "Invalid ApplicationId: amzn1.ask.skill.[my skill id]" 

のAppID

//alexa.appId = APP_ID 
を設定シミュレータは、有効な応答を返すように見えますが、私はログにこの警告を参照してください。

ここで
"Warning: Application ID is not set." 

は、シミュレータにより送信されたラムダリクエストです:

{ 
    "session": { 
    "sessionId": "SessionId.bb263d3e-2018-4aab-a0df-f945b3a25bf9", 
    "application": { 
     "applicationId": "amzn1.ask.skill.[my skill ID]" 
    }, 
    "attributes": {}, 
    "user": { 
     "userId": "amzn1.ask.account.[accountID]" 
    }, 
    "new": true 
    }, 
    "request": { 
    "type": "LaunchRequest", 
    "requestId": "EdwRequestId.d8b56c7f-63ea-48e8-8816-9b7c036d5816", 
    "locale": "en-US", 
    "timestamp": "2017-07-12T12:06:11Z" 
    }, 
    "version": "1.0" 
} 

いくつかのオンラインの例はAPPIDプロパティがAPP_IDしなければならないことを示唆している:

alexa.APP_ID = APP_ID; 

が、これは正しいことが表示されません。 alexa-sdkのソースコードによれば(とにかくそれを試してみてください)、プロパティは実装されたときにappIdする必要があります。

Amazonのシミュレータで作成されたjsonラムダリクエストに関連しているようです。これはAWSラムダテストイベントインターフェイスのテスト機能ではなく、Amazon Alexa開発者のポータルのシミュレータです。

AmazonのシミュレータからのラムダリクエストをカットアンドペーストしてAWSテストインターフェイスから実行すると、問題はありません。

答えて

2

私はこの2日間もこの問題を抱えていました。私はそれが彼らの終わりの問題だと信じています。私はamazonフォーラムでこれを見ました。

Amazonは、シミュレータや休憩検証からラムダが受信したJSON 要求に影響を与え週末に何かを変更しました。 ここ への回避策が含まれ、このに関する2つのスレッドが、それが動作することができます:

https://forums.developer.amazon.com/questions/78391/application-id-verification-issue-with-nodejs-and.html

https://forums.developer.amazon.com/questions/78393/my-alexa-skill-is-not-returning-a-lambda-response.html

これまでのところ、アマゾンからの更新、または問題のさえ確認 がなかったです。

--- GadgetChannel

+1

はい、これは問題です。私はそれがずっとずっと落ちているとは信じられません。私は自分のコードに何か問題があると仮定しました。問題を修正したものを追加する: 'if(event.context && event.context.System.application.applicationId == 'applicationId'){ \t event.context.System.application.applicationId = event.session.application.applicationId; } ' – LaserCat

関連する問題