Daily Archive: 2019年1月12日

WatsonのUIをLINEに設定する2

の続きの記事です。

httpノードをフロー1に置く。

ノードをクリックすると編集画面になるので、プロパティを下記のように入力する。

functionノードを同じように置いてダブルクリックします。

エディタが開くので下記のように入力し「完了」します。

flow.set(“replyToken”,msg.payload.events[0].replyToken);
return msg;

ノードとノードを接続します。

http responseノードを下記のようにfunctionノードと繋ぎます。

changeノードを置いて、編集画面で下記のように入力して「完了」します。

(値の代入 msg.)
payload
(対象の値 mag.)
payload.events.0.message.text

functionノードとchangeノードを下記のように繋げます。

次にassistantノードを下記のように繋ぎます。

changeノードを置きます。

changeノードに下記を入力して「完了」します。名前はなんでも良いのでわかりやすいものにしてください。

(値の代入 msg.)
payload.optext
(対象の値 mag.)
payload.output.text0

また繋げます。

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との接続が切断されます。その場合も、このリソースリストから、状況が実行中になっていないアプリを見つけ、下記のように縦に三つ並んだ・から実行をクリックすると接続が再開されます。(*写真は、実行中のステータス時の選択肢)

それでは、実際にLINE上でWatson Assistantが動くかどうかLINE@ MANAGERに移り、アカウント設定の基本設定をクリックします。画面をスクロールしていくと、QRコードと友だち追加ボタンが表示されます。

Watson LINE 診断士

私の環境では、なぜかここで表示されるはずのQRコードが表示されていませんが、友だち追加のボタンをクリックすると、QRコードを表示する下記の画面に遷移します。

Watson LINE 診断士

これをスマートフォンのカメラアプリで読み取り早速テストしてみましょう。実際の会話は、Watson AssistantでDialogue(会話)を作っていくとボットとして幅広い対応ができるようになります。

お疲れ様でした。

LINEで送る
[`evernote` not found]
LinkedIn にシェア