はじめまして、Node.js初心者です。
GoogleHomeからSlackに投稿したいです。
前提・実現したいこと
GoogleHome→Dialogflow→APIGateway→AWSLambda→Slack
参考にしたサイト様
AWS API Gateway+LambdaでSlackにメッセージをPOSTする(前編)
DialogflowのFulfillmentでAPIGatewayをあてており、
Lambdaでこのコードを入れたところDialogflow側でエラーがでてしまいます。
APIとLambdaは問題なく、Slackにテストポストがされる状態です。
console.log('Loading function'); const https = require('https'); const url = require('url'); const slack_url = process.env.SLACK_WEBHOOK_URL; const slack_req_opts = url.parse(slack_url); slack_req_opts.method = 'POST'; slack_req_opts.headers = {'Content-Type': 'application/json'}; exports.handler = function(event, context) { if (event.text) { var req = https.request(slack_req_opts, function (res) { if (res.statusCode === 200) { context.succeed('posted to slack'); } else { context.fail('status code: ' + res.statusCode); } }); req.on('error', function(e) { console.log('problem with request: ' + e.message); context.fail(e.message); }); // ここで、メッセージの編集を必要に応じて行う。 var message = event.text; req.write(JSON.stringify({text: message})); req.end(); } }); };
###Dialogflow側でのエラーメッセージ
"status": { "code": 206, "errorType": "partial_content", "errorDetails": "Webhook call failed. Error: Request timeout.", "webhookTimedOut": true }, "sessionId": "88032c8d-97cb-48bc-94c3-a8151fa26c6a" }
試したこと
exports.handler = (event, context, callback) => { callback(null, { "statusCode": 200, }) };
Lambdaに上記のコールバックのコードのみを入れた場合はDialogflow側のエラーはでません。
しかし上記のSlackのコードと組み合わせると同じように206エラーがでてしまいます。
こちらの参考様
Google Home と Lambda で「"あ"のつくポケモンなーんだ」
補足情報
当方初心者ですがお力添えしていただきたく思います、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/02 17:29