Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2019.06.30「Watson Assistantを使ったLINE bot(Node-RE...
Search
KMiura
June 30, 2019
Technology
0
780
2019.06.30「Watson Assistantを使ったLINE bot(Node-REDとLINE連携編)」
KMiura
June 30, 2019
Tweet
Share
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1.1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
79
Pythonでルンバをハックしてみた
miura55
0
160
あなたの知らないクラフトビールの世界
miura55
0
350
Storage Browser for Amazon S3を触ってみた + α
miura55
0
220
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
210
あのボタンでつながるSORACOM
miura55
0
140
Postman Flowsで作るAPI連携LINE Bot
miura55
0
380
Lambdaと共に歩んだAWS
miura55
3
840
Other Decks in Technology
See All in Technology
WEBサービスを成り立たせるAWSサービス
takano0131
1
180
Findy Team+ QAチーム これからのチャレンジ!
findy_eventslides
0
420
リセラー企業のテクサポ担当が考える、生成 AI 時代のトラブルシュート 2025
kazzpapa3
1
360
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
150
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
80k
LLMアプリの地上戦開発計画と運用実践 / 2025.10.15 GPU UNITE 2025
smiyawaki0820
1
610
Node.js 2025: What's new and what's next
ruyadorno
0
400
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
220
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
10
4.9k
【Kaigi on Rails 事後勉強会LT】MeはどうしてGirlsに? 私とRubyを繋いだRail(s)
joyfrommasara
0
270
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Optimizing for Happiness
mojombo
379
70k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
It's Worth the Effort
3n
187
28k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Bash Introduction
62gerente
615
210k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Building Applications with DynamoDB
mza
96
6.7k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Code Reviewing Like a Champion
maltzj
526
40k
Transcript
Watson Assistantを使ったLINE Bot(Node-REDとLINE連携編) 三浦 耕生
Node -REDとは? • IBMが開発したブロックプログラミングツール • 様々な機能を持った「ノード」をドラッグアンドド ロップで配置して接続するだけ • 足りない機能はfunctionノードでJavascriptのコードを足 すことができる
• IBM Cloudでも簡単に環境構築できる
本題に入る前に… • 以下のURLからIBM Cloud にアクセス、ログインし てください https://ibm.biz/BdzqZd • 右のQRからもアクセスで きます
本題に入る前に…② • 以下のリンクからこの時間に必要な資料をダウンロード http://bit.ly/31LvqPH
環境構築(まだ構築してない方向け) • カタログから検索し「Node-RED Starter」を選択 • 以下の画像の通り「アプリ名」と「ホスト名」を記入する(ホ スト名がアプリへのURLになるので、よく考える)
初期設定(まだ構築していない方向け) • 順番に進んでいき、途中でユーザネームとパスワード を設定する(しなくてもいいが、URLがわかってしまう と誰でもアクセスできてしまう) • 以下のようなエディタ画面が起動すればOK(まだ閉じ ない)
LINE botを作成 • LINE developersへログイン • ブロバイダを作成 • 新しいチャンネル→Messaging APIを選択
• 必要項目を入力(URL系以外の項目はすべて必須項目、アプリ 名にはLINEを含んだ文字列は登録できない) • 終わったら、閉じずにそのまま次の工程へ
まずはオウム返し • チャットボットの事始めとして、ユー ザーが話したことをそのまま帰すオウ ム返しを行う。 • Node-REDに戻り、エディタ画面で入力 の「httpノード」と出力の「debugノー ド」を接続 •
httpノードをダブルクリックし、メ ソッドを「POST」、URLを「/callback」 に設定
Debugノードについて • 通常プログラムを実行するときに途中の出力を確認する時にデ バッグを行う→エラーの原因を特定できる • 今回の場合はwebhookで受け取ったメッセージをdebugノードで 確認出来る • Debugノードの出力やエラーメッセージを確認するには右上の 虫マークをクリックすると表示される
• 思い通りの動作をしないときにも気になる箇所にDebugノード を足して出力を確認する
残りもつなげ てみる • この続きには「Function」ノードを2つ追加して、「http request」ノードを足して最後はoutputの「http response」ノー ドを足す • functionノードの名前は便宜上、順に【setToken】、 【makeReply】
• http requestノードをダブルクリックで開き、メソッドは 「POST」を選択、あとはそのまま • URLは?→このあとfunctionノードで設定する
Functionノードの設定 • 配布資料のテキストファイルのファイル名に該当するfunction ノードにそれぞれテキストファイルの中身をコピーする • 2つのうち、makeReplyの方のaccess_tokenに代入する値は先程の LINE Developersのbotの設定画面のなかにあるアクセストークン をコピぺ(何も出てない場合は再発行をクリック)
Webhookを送信する設定 • LINE Developersに戻り、webhookのURLを指定する • 「<ホスト名>.mybluemix.net/callback」の形で指定する • 終わったら更新ボタンをクリック
早速動作確認! • 画像のように送信したメッセー ジがそのまま返ってきたら成功 • もし送信されない場合は、 webhook URLの打ち間違い、Reply Tokenが正しいかを確認(フロー 上で発生したエラーはデバッグ
のメッセージから確認できる)
Watson Assistantと接続 • Node-REDの概要画面に行 き、接続の作成をクリック • 右のような画面になるので、 先程作成したWatson Assistantのリソースにカー ソルを移動させ右端に出る
接続ボタンをクリック • 選択後、再ステージが行わ れるので、起動に時間がか かる
メッセージ を取得 • Watson Assistantにwebhook で受け取ったメッセージ を入力させるために「set Token」の後に「Change ノード」を追加する •
Changeノードのルールは 「値の代入」を選択 • 「msg.payload」に、 【payload.events.0.message .text】を代入
Assistantに返 答させる • 「Assistantノード」を追加 してbotの返答を作成する • 「Workspace ID」はWatson Assistantのページから先程 作成したスキルの右側の3
つの点をクリックし 「View API Details」を選択 すると確認できる • Workspace IDをコピーして、 Assistantノードにペースト
makeReplyの修正 • makeReplyの名前で設定しているfunctionノードを開き、Watson Assistantからの返答をbotで送信出来るようにする • payload.message.textの【 msg.payload.events[0].message.text 】を 【 msg.payload.output.text[0]
】に変更 • 修正が終わったら右上のデプロイボタンを押して終了
動作確認その2 • Assistantのスキルを作成した際に行ったテス トチャットのやり取りの通りのことがLINE 上で行われたら、成功 • もし、うまくいかない場合は、変数のタイ プミスが無いかを確認する(右側のデバッ グからもどこのノードのエラーか特定でき る)