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-REDとLINE連携編)」
Search
KMiura
June 30, 2019
Technology
0
720
2019.06.30「Watson Assistantを使ったLINE bot(Node-REDとLINE連携編)」
KMiura
June 30, 2019
Tweet
Share
More Decks by KMiura
See All by KMiura
App Runnerでパラメーターストアの値を使ってみた
miura55
0
280
ultraArmをモニター提供してもらった話
miura55
0
110
JAWS UG名古屋2023年活動報告
miura55
0
130
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
1
100
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
0
190
AWS CDKの新機能「cdk migrate」を試してみた
miura55
1
330
LINE DC×SORACOM UGのこれまでとこれから
miura55
0
42
社会人4年目が学生に捧げる5か条
miura55
0
140
AWSで作るGPSトラッキングシステム
miura55
0
450
Other Decks in Technology
See All in Technology
web-application-security
matsuihidetoshi
0
140
開発生産性向上サービスを作るFindyが自分たちで開発生産性を爆上げした組織づくりの歩み / Findy's path to boosting its own development productivity 2024-04-17
ma3tk
3
620
Cracking the KubeCon CfP
inductor
2
230
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
280
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.3k
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
120
継続的な改善 x ⾮連続的な進化
sansantech
PRO
3
140
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
500
「スニダン」開発組織の構造に込めた意図 ~組織作りはパッションや政治ではない!~
rinchsan
3
540
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.9k
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
290
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Clear Off the Table
cherdarchuk
84
310k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
659
120k
GraphQLの誤解/rethinking-graphql
sonatard
50
9.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Code Reviewing Like a Champion
maltzj
514
39k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
Statistics for Hackers
jakevdp
789
220k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
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 上で行われたら、成功 • もし、うまくいかない場合は、変数のタイ プミスが無いかを確認する(右側のデバッ グからもどこのノードのエラーか特定でき る)