2017-08-02 36 views
0

AWS Lambdaでコードを呼び出そうとしています。このラムダコードは私のIOTボタンで設定されています。このコードを実行すると、エラーは表示されません。また、携帯端末で必要なプッシュ通知が表示されません。MissingRequiredParameter:必須のキーが見つかりませんパラメータ 'Message'

私は私のコンソールでこのメッセージを見ることができます:MissingRequiredParameterを:行方不明に必要なキー「メッセージ」のparams

でこれが私のコードです:

'use strict'; 

console.log('Loading function'); 

var AWS = require('aws-sdk'); 

var sns = new AWS.SNS(); 

AWS.config.region = 'xxxxx'; 

const TopicArn = 'xxxxxxxxxxxxxxxxxxxxxxxxxx' 

exports.handler = function(event, context) { 

    console.log("\n\nLoading handler\n\n"); 
    console.log('Received event:', event); 


    const sin = 
     { 
"default": "Start", 
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"Start\"}}", 
"GCM": "{ \"notification\": { \"text\": \"Start\" } }" 
} // for single click 
    const doub = { 
"default": "Stop", 
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"Stop\"}}", 
"GCM": "{ \"notification\": { \"text\": \"Stop\" } }" 
} // for double click 
    const lon = { 
"default": "SOS", 
"APNS_SANDBOX":"{\"aps\":{\"alert\":\"SOS\"}}", 
"GCM": "{ \"notification\": { \"text\": \"SOS\" } }" 
} // for long click 

    var singleClick = sin[Math.floor(Math.random()*sin.length)]; 
    var doubleClick = doub[Math.floor(Math.random()*doub.length)]; 
    var longClick = lon[Math.floor(Math.random()*lon.length)]; 

    var randomMessage = singleClick; 

    if(event.clickType == "DOUBLE") 
    { 
    randomMessage = doubleClick; 
    } 

    if(event.clickType == "LONG") 
    { 
    randomMessage = longClick; 
    } 


    sns.publish ({    
    Message: randomMessage, 
    TopicArn: TopicArn 
    }, 

    function(err, data) { 
     if (err) { 
      console.log(err.stack); 
      return; 

     } 
     console.log('push sent'); 
     console.log(data); 
     context.done(null, 'Function Finished!'); 
     }); 
     } 

誰かが私はこのエラーをデバッグすることはできますか?

+0

'console.log(randomMessage);'。ここに示すコードだけに基づいて、変数が未定義になるようです。 –

+0

うん。知っている。 AndroidとiOSのアプリにメッセージを送信するためにIOTボタン機能を起動する必要があります。私のコードで変更する必要があるものはありますか? – Ashish

+0

はい、その場合は未定義の変数を修正してください。 –

答えて

0

回答が見つかりました。 stringify()コマンドを使用して変数を定義する必要がありました。そうでないと、JSON形式のメッセージを送信できません。

関連する問題