この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、中村です。
前回に引き続きAmazon Lex(以下、Lex)のお話です。
今回はLINEと連携させます。細かい設定は、こちらを参考にしてください。
注意点
API Gatewayの設定
LINEの署名チェックを行うために、リクエストヘッダー情報が必要です。
ヘッダー情報をAmazon Lambdaに渡すために、API Gatewayで下記の設定をしましょう。
LINEの設定
LINE開発者コンソールのチャネル設定から"自動応答メッセージ"を"利用しない"に設定する。
設定しない場合メッセージを送信すると、下記のメッセージが表示されます。
Lexとの連携
前回Lexで作成したBotを使用します。
LexのコンソールからBot NameとBot Aliasをメモしてください。
Bot Name
Bot Alias
AWS SDKで連携できるので、簡単に動かすことができます。
const line = require('@line/bot-sdk');
const aws = require('aws-sdk');
var lex = new aws.LexRuntime({region: 'us-east-1'});
var client = new line.Client({channelAccessToken: /* LINEチャネルのACCESSTOKENを入れてください */});
var params = {
botAlias: 'prd',
botName: 'Reservation',
userId: event.events[0].source.userId,
inputText: event.events[0].message.text
};
lex.postText(params, function(err,data){
if (!err) {
var message = {
'type': 'text',
'text': data.message
};
client.replyMessage(event.events[0].replyToken, message).then((response) => console.log(response)).catch((err) => console.log(err)); //LINEの送信
} else {
console.log(err);
}
});
実際に使ってみよう
おわりに
いかがでしたでしょうか。
テキストのやり取りについては、簡単に連携することができました。
音声入力についても、今後連携していきます。