Dialogflowの知見があるのでせっかくなのでLineとかと連携していろいろやってみたいなぁと思いました。(時代に乗り遅れてる感はありますが。。。)
DialogflowはWebhookを使ってAPI連携できるし、AWSのLambda、APIGatewayを使えばいろいろなことができそうですよね。
今回はDialogflowとLineを連携する部分の設定をします。
本記事の実施前提条件
1.Dialogflowアカウントを持っている
2.LINEアカウントを持っている
LINE公式アカウントの開設
まずはLINEアカウントを開設します。1.下記URLを開きます。
https://www.linebiz.com/jp/
2.右上の[アカウントの開設]ボタンをクリックし、必要情報を入力し、アカウントを作成します。
3.[管理画面ログイン]メニューをクリック後、[LINE公式アカウントの新規開設はこちら]リンクをクリックします。
4.動作確認レベルなので[未承認アカウントの作成]をクリックし、必要情報を入力します。
LINE公式アカウントにdialogflowのWebhookURLを設定
LINE公式アカウントにdialogflowのWebhookURLを設定していきます。 本記事では下記の順序で設定を行います。 1.DialogflowのWebhookURLを取得 2.DialogflowのWebhookURLをLINE公式アカウントに設定DialogflowのWebhookURLを取得
Dialogflowの画面を開いてください1.Dialogflowの画面から新しいagentを作成します。
2.左メニューから[Integrations]を選択→[LINE]をonにします。
3.ポップアップ画面が開かれ、WebhookURLが表示されるので値をコピーしてきます。
DialogflowのWebhookURLをLINE公式アカウントに設定
LINE official Account Managerの画面を開いてください。1.[チャット]メニューをクリック→出てきたポップアップで[応答モード設定に移動]をクリックします。
2.[Messaging API]メニューを選択→[Messaging APIを利用する]ボタンをクリックし、必要情報を入力します。
3.WebhookURLにdialogflowのURLを指定します。
LINE公式アカウントのWebhook有効化
Webhookを有効にしないとDialogflowと通信できないためWebhookを有効化します。 1.LINE DeveloppersからのMessaging APIの設定からWebhookを有効化してください。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294965/b54e5460-bd20-575f-c0a8-bcd5c47c2021.png)応答メッセージのオフ
応答メッセージをオフにしないと、応答がDialogflowとLINE双方から返却されることになります。 1.左メニュー[応答設定]→詳細設定[応答メッセージ]を[オフ]にします。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294965/19d77669-eb3b-9e7e-08ff-36b5f94d2955.png)以上でLINE側の設定は完了です。
次はDialogFlow側の設定を行います。
dialogflowにLINE公式アカウントの情報を設定
Dialogflowに[Channel ID],[Channel Secret],[Channel Access Token]の3つを設定するためにLINE Developpersへアクセスします。
1.[チャネル基本設定]を選択し、[Channel ID]、[Channel Secret]の二点を取得します。
2.[Messaging API設定]を選択し、[Channel Access Token]を取得します。
3.Dialogflowの画面へ戻りそれぞれ値を設定します。
以上で設定は完了です!
お疲れ様でした。
動作確認
今回は簡単に「こんにちは」とLINEに打ったら「よぉ!」と返すような仕組みを作ってみようと思います。1.自分のLINEアカウントを使ってLINE Developpersなどに登録した場合LINEの友達に勝手にbotが登録されていると思います。(されていない場合はLine Developpersの[Messaging API設定]からQRコードを読み込んでください)
2.DialogflowでIntentsを作成します。
Intents名:hello
TrainingPhrase:こんにちは
Response:よぉ!
先ほど作成したhelloインテンツ以外消しちゃいましょう。
無事連携できました!
自分が作ったものが動くというのは面白いですよねー。
次はこのボットを使ってもうちょっと面白そうなことをやってみたいです。
Messaging APIを使ってプッシュ通知などをやりたかったのですが、フリープランでは出来なさそうなので断念