WatsonのUIをLINEに設定する2
の続きの記事です。
httpノードをフロー1に置く。
ノードをクリックすると編集画面になるので、プロパティを下記のように入力する。
functionノードを同じように置いてダブルクリックします。
エディタが開くので下記のように入力し「完了」します。
flow.set(“replyToken”,msg.payload.events[0].replyToken);
return msg;
ノードとノードを接続します。
http responseノード(httpノードではありません。)を下記のようにfunctionノードと繋ぎます。
changeノードを置いて、編集画面で下記のように入力して「完了」します。
(値の代入 msg.)
payload
(対象の値 mag.)
payload.events.0.message.text
functionノードとchangeノードを下記のように繋げます。
次にassistantノードを下記のように繋ぎます。
changeノードを置きます。
changeノードに下記を入力して「完了」します。名前はなんでも良いのでわかりやすいものにしてください。
(値の代入 msg.) payload.optext (対象の値 mag.) payload.output.text.0
また繋げます。
functionノードを追加して、名前は自分でわかるように、コードには下記のように入力し、「{LINEアクセストークン}」部分は一旦このままで「完了」する。
var output_text = flow.get("text");
var post_request = {
"headers": {
"content-type": "application/json; charset=UTF-8",
"Authorization": " Bearer " + "{LINEアクセストークン}"
},
"payload": {
//"replyToken": msg.payload.events[0].replyToken,
"replyToken": flow.get("replyToken"),
"messages": [
{
"type": "text",
"text": msg.payload.optext
}
]
}
};
return post_request;
http requestノードを作って、メソッドは「POST 」、URLは下記の文字列、出力形式はJSON、名前は「Reply Message」として「完了」する。
URL
https://api.line.me/v2/bot/message/reply
ここまでで、一旦Node-REDは置いておきます。次に、IBM Cloudのダッシュボードに戻ります。
ダッシュボードのサービスからWatsonのSkillsを開発した名前をクリックします。Watson Assistantの画面から「ツールの起動」をクリックします。
メニューから「Skills」を選択します。すでに設定してあるSkillsが表示されたら、縦に・が並んだアイコンをクリックして、「View API Details」をクリックします。
Workspace IDが表示されるので、それをコピーする。
Assistantノードをダブルクリックし編集画面を表示する。
先ほどのWorkspace IDを入力し、「完了」する。
次は、LINE側のAPIをいじります。LINE Developersに戻り、「Massaging API」の「チャネルを作成する」をクリックする。
その後、チャネルの名前などを決めていきます。
チャネルが作成されると、新規チャネル「@@@@」が作成されました。と表示され、プロバイダーリストの下位レイヤーにチャネルが作成されます。
LINE系の言葉がたくさん出てきたので整理します。LINE Developersは、通常の個人LINEアカウントと紐づけることができます。レイヤーで見ると、
LINE Developers – 個人LINEアカウント
∟プロバイダー
∟チャネル
また、ややこしいのは、LINE@ MANAGERでこれらを開くと、
LINE@MANAGER(アカウント一覧)
∟プロバイダー
∟チャネル
と、プロバイダーとチャネルのアカウントが並列に表記されているので、行ったり来たりするとよくわからなくなるかもしれません。
新チャネルを開くと、「チャネル基本設定」画面にたどり着きます。
ここで、
・Webhook送信を「利用する」
・Botのグループトーク参加を「利用する」
にします。(*画像は利用しないになっていますが、「利用する」に変更してください。もし、グループトークに招待してテストなどをした後、退室させたい場合は、ここを一時的に「利用しない」に変更してください)
また、下記のWebhook URLについては、 Cloud Foundry アプリにつけたアプリ名をxxxの部分と置換すると接続できます。
https://xxx.mybluemix.net/line_hook
もしよくわからなければ、IBM Cloudのダッシュボードから、「リソースの要約」欄のサービスをクリックすると、リソース・リストを開くことができます。
このリストの中で、Cloud Foundry サービスのxxx-cloudantNoSQLDBを開き、下記のような「経路」表示された文字列を探してください。それを上記に当てはめると解決すると思います。
また、ライトプランの場合は、一定時間(数日)動かさないでいると、LINEとの接続が切断されます。その場合も、このリソースリストから、状況が実行中になっていないアプリを見つけ、下記のように縦に三つ並んだ・から実行をクリックすると接続が再開されます。(*写真は、実行中のステータス時の選択肢)
次に、下の方へスクロールして、
メッセージ送受信設定の真下にある、アクセストークン(ロングターム)を再発行します。
このアクセストークンをコピーして、Node-REDの画面に戻りfunctionノードをダブルクリックして、{LINEアクセストークン}の中に、ペーストとします。
それでは、実際にLINE上でWatson Assistantが動くかどうかLINE@ MANAGERに移り、アカウント設定の基本設定をクリックします。画面をスクロールしていくと、QRコードと友だち追加ボタンが表示されます。
私の環境では、なぜかここで表示されるはずのQRコードが表示されていませんが、友だち追加のボタンをクリックすると、QRコードを表示する下記の画面に遷移します。
これをスマートフォンのカメラアプリで読み取り早速テストしてみましょう。実際の会話は、Watson AssistantでDialogue(会話)を作っていくとボットとして幅広い対応ができるようになります。
お疲れ様でした。
スギヤマです。
主にガジェットいじりに関わる記事を投稿します。
この記事へのコメントはありません。