Amazon SNSリクエストの本体を取得しようとしていますが、オブジェクトとして返されます。リクエストからヘッダーを問題なく取得できます。 (req.header( 'X-AMZ-SNS-メッセージタイプ'))NodejsのPOST要求(Amazon SNS)本体を取得する
var msgBody = req.body.Message;
msgBody変数がIがリクエストから文字列値を得ることを期待オブジェクトとして返されます。
私は、次のオプションを明示し、ボディパーサーを使用しています:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
次のように要求フォーマットがある(読みやすいように短縮):
POST /createLog/slackLogSNS/ HTTP/1.1
x-amz-sns-message-type: Notification
x-amz-sns-message-id: 3f71e0db-a9b1-5092-96f4-b26015676ba0
{
"Type" : "Notification",
"MessageId" : "3f71e0db-a9b1-5092-96f4-b26015676ba0",
"TopicArn" : "arn:aws:sns:us-east-2:043886476179:testslackSNS",
"Subject" : "hghghgfhgfhg",
"Message" : "{\n \"Type\" : \"Notification\",\n \"MessageId\" : \"22b80b92-fdea-4c2c-8f9d-bdfb0c7bf324\",\n \"TopicArn\" : \"arn:aws:sns:us-west-2:123456789012:MyTopic\",\n \"Subject\" : \"My First Message\",\n \"Message\" : \"Hello world!\",\n \"Timestamp\" : \"2012-05-02T00:54:06.655Z\",\n \"SignatureVersion\" : \"1\",\n \"Signature\" : \"EXAMPLEw6JRNwm1LFQL4ICB0bnXrdB8ClRMTQFGBqwLpGbM78tJ4etTwC5zU7O3tS6tGpey3ejedNdOJ+1fkIp9F2/LmNVKb5aFlYq+9rk9ZiPph5YlLmWsDcyC5T+Sy9/umic5S0UQc2PEtgdpVBahwNOdMW4JPwk0kAJJztnc=\",\n \"SigningCertURL\" : \"https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem\",\n \"UnsubscribeURL\" : \"https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:MyTopic:c9135db0-26c4-47ec-8998-413945fb5a96\"\n}",
}
}
'console.log(typeof req.body.Message)'の出力は何ですか? – Anuruddha