LoginSignup
1
0

More than 1 year has passed since last update.

New Watson Assistant と LINE をつなぐ Part 2

Last updated at Posted at 2022-12-18

image.png

今回は前回からの続きです。

(実施のステップ)

  1. Github に用意した Node-RED 環境構築用の雛形を Gitpod にデプロイ
  2. Node-RED フローを使って LINE Platform と Watson Assistant とを接続

前回は、『1. Github に用意した Node-RED 環境構築用の雛形を Gitpod にデプロイ』 を行いました。
今回は、『2. Node-RED フローを使って、LINE Platform と Watson Assistant との接続』 を行います。

image.png

2. Node-RED フローを使って LINE Platform と Watson Assistant とを接続

実装イメージと手順について

ここからは、複数のサービスを行ったり来たりしますので、何をやっているのか、迷子になる可能性があります。

LINE、LINE プラットフォームとサービスの接続イメージ図がわかりやすく公式サイトに記載されています。
image.png
迷子にならないように、この番号に結びつけながらご説明していきます。
(例えば、『Messageing API イメージ図の x 番』 もしくは、『Messageing API イメージ図の LINE プラットフォーム』 と言うように、参照します)

LINE Developer アカウントの作成

『Messageing API イメージ図の LINE プラットフォーム』 にアクセスするために、LINE Developer アカウントを作成します。
LINE をエンドユーザーとして使用するだけなら必要ありませんが、LINE Messagin API を使用するために必要な認証キーの入手やサービス (ボットサーバ)への接続設定を行うために必要です。

手順はちょっと長いのですが、公式サイトのMessaging APIを始めように詳しい解説があります。
また、色々な人が Qiita で記事を書かれていますので、自分に合った方法を探してみてください。

ポイントは、

  • Channel Secret
  • Channel Access Token
  • Webhook の有効化と Webhook 先の変更箇所

になりますので、作業しながらメモを取っておいてください。

LINE ノードを配置

『Messageing API イメージ図の Webhook ( ② 番と ③ 番)』 の部分を実装していきます。
実装と言っても、Node-RED 用に公開されている LINE ノードを使用させていただきますので、とっても簡単です。

Webhook ノードReply ノードを方眼紙 (?) の上にドラッグ & ドロップ して、その 2 つを線で結びます。
image.png
Webhook ノードをダブルクリックし、Path に /line_webhook と入力します。
image.png
Reply ノードをダブルクリックし、Channel Securet と Channel Access Token をそれぞれ入力します。
image.png
忘れずに右上のデプロイをクリックします。
image.png

エンドポイントを取得する

『Messageing API イメージ図の LINE プラットフォーム』 から webhook でアクセスするためのエンドポイントを取得します。
ブラウザーのタブで Gitpod に切り替えます。Node-RED タブの左側にある Get Started - node_red-linebot と表示されているタブです。
image.png
ブラウザーの右下位にある Ports: 1800 をクリックします。
image.png
こんな表示が現れたと思います。
image.png
細かいですが、このような意味となります。
image.png
①エンドポイントのコピーをクリックしして、エンドポイントを取得します。
こんな感じです。
https://1880-watsonbx04-noderedlineb-mkr0msq2333.ws-us79.gitpod.io
②エンドポイントのpublic化をクリックして、エンドポイントが外部からアクセスできるようにします。
State が open(public)に変わります。
image.png

無償の Gitpod 環境はアクセスがない時間を検知すると、サスペンド状態になります。サスペンドから復帰させると、ステータスは、open(private) に戻りますので上記手順で open(public) に変更するようにしてください。

Webhookに値をセットする

『Messageing API イメージ図の LINE プラットフォームにて、Webhook settings に、エンドポイントをセットします。エンドポイントの後ろに、/line_webhook をつけることを忘れないでください。
設定作業は、LINE Developers から行います。
image.png
Verify をクリックします。Success が表示されれば成功です。

image.png

テストしてみる (いわゆる オウム返しボット)

自分の LINE アプリを使って、お友達登録します。
QR code を読み取ります。
image.png
いつもの手順でお友達登録を済ませてください。(スクリーショットを撮り忘れました。やり直しができないため、手順を省略します。すみません)
チャット画面が現れたら、何でも良いので、テキストを入力してください。
image.png
おうむ返しボットができました。

New Watson Assistant だと何が違うのか

おうむ返しボットができたので、次は New Watson Assistant と繋ぎます。
その前にちょっとだけ、従来の Watson Assistant との違いをお話しいたします。

API バージョンの違い

Watson Assistant の API には、従来との互換性を維持している V1 と 新しい機能が使える V2 があります。
この 2 つの内、New Watson Assistant を使用する場合は、V2 を使用することになります。

提供される環境の違い

New Watson Assistant では標準で検証環境と本番環境の2つを提供してくれます。
以前から Watson Assistant をお使いのユーザー様の中には、この2つの環境を分けるために、インスタンスを 2 つ作成されているケースがありましたが、ケースによっては、1 つのインスタンスで運用することも可能です。

この2つの環境の詳細は、こちらの記事で紹介しています。

インスタンスを分ける理由は環境の観点だけではなく、セキュリティや可用性の観点もございますので、インスタンスの数については、各々の要件に応じてご検討ください。

New Watson Assistant と接続するアプリケーションを独自に開発する場合、上記 2 点について考慮する必要があります。
そして、LINE と接続する場合は、独自に開発する場合に相当します。

標準で提供される Web Chat は上記 2 点をあまり意識せずとも使用できるように考慮されています。

Watson Assistant ノードを配置

Node-RED 上で Watson Assistant を構成します。
方法は簡単です。LINE の時と同じで、Watson Assistant ノードを使用します。
『Messageing API イメージ図の サービス (ボットサーバー)』 の部分を実装していきます。

assistant V2 ノードを方眼紙の上にドラッグします。
image.png
assistant V2 ノードをダブルクリックし、パラメータをセットします。
image.png
①入力②入力 は、**Watson Assistant インスタンスの画面から取得してください。
image.png
③入力Environments 環境の Draft もしくは Live から入手します。
(図は Drift から入手する例です)
image.png
image.png

LINE と New Waton Assistant をつなぐ

change ノード を方眼紙の上にドラッグし、図のように、配線してください。
image.png

change ノード のプロパティは、このようにします。
プロパティ属性: msg.
入力値: payload.output.generic[0].text
image.png
image.png

テストしてみる

LINE アプリからテストしてみてください。ちゃんとピザの注文ができました :relaxed:
image.png

完成したフローは、Github にアップしてありますので、ご参考まで。(『実装例』タブにあります)

いかがでしたでしょうか

手順は長かったのですが、思ったより簡単(?)に LINE ボットが作れたのではないでしょうか。
それも、ほぼ No Codeで。
(Node-RED 用の LINE ノードを作成してくれた n0bisuke 様1ft-seabass 様、本当に感謝です)

Gitpod 環境は便利なのですが、無償の場合、すぐにサスペンドしてしまうのが難点ですね。。。
再アクティベートの際は、各ノードへの認証情報再セットと エンドポイントの open(public)化をお忘れなく!

続きの記事 / 前回の記事

参考情報

LINE 公式サイト

LINE Bot 関連

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0