ハンズオン はじめてのNode-RED:その2)BluemixにNode-REDをインストールする&LINE botに挑戦〜準備編〜

こんばんは、猫が毛布でうまる時期が始まりました。CHAKOです。

だって寒いんだもん、華子。

ようやく、「はじめてのNode-RED」のハンズオンが、
5章 「Node-RED」を、より使いこなす
までたどり着きました。

LINE MessageAPIに繋いでみよう、ということで、LINE@のアカウント登録、LINE@MANAGERやLINE developersの画面を扱える状態に整えるまでは、本を見たり以下のURLを参考にしました。

▽参考にした情報
▼LINE Business Centerとapi.aiを使ってチャットボットを作る
https://qiita.com/salmonosushi/items/20310131b0423c408ea1z
▼PepperとLINE(Message API)を接続するまで
https://qiita.com/black_pepper/items/edf5a8d3d7d4ba6ace35

LINEのアカウントなどなどの準備が整ったので、Bluemix上でNode-REDを使用可能な状態に準備します。

▽参考にした情報
▼10 分間で感動的な Bluemix アプリを構築する!
https://www.ibm.com/developerworks/jp/cloud/library/cl-build-a-bluemix-app-in-10-minutes-trs/index.html

ブラウザ上でNode-REDのURLに接続したら、さっそくhttp受信できるように、テキストに従って
入力 http ノード
出力 debug ノード
ノードを組み合わせました。

   

こんな感じ。

ここまで準備して、入力ノード:Callbackを使って作ったURLをLINE Developments 画面側の「メッセージ送受信設定」欄の「Webhook URL」のところに入力します。
入力完了後、入力欄の横に[接続確認]ボタンがあるので、ボタンを押下して、Webhook通信ができるかどうか確認をします。

んが、[接続確認]を押下しても、画面には「Webhook との通信でエラーが発生しました。」と出るだけでした。。。

しかも、Bluemix上のNode-REDのデバッグ・ウィンドウでは、objectのuserIdに、なんだか不吉そうな
Udeadbeefdeadbeefdeadbeefdeadbeef
の文字列が表示されてるし〜(=_=)!

先の参考URLを読み進めていくと、もしかして、アクセストークンが空なのがいけない??ということに気がついたので、アクセストークン欄で[再発行]を実行してみました。

しかし、なお、Bluemix上のNode-REDのデバッグ・ウィンドウでは、objectのuserIdには、なんだか不吉そうな
Udeadbeefdeadbeefdeadbeefdeadbeef
の文字列が表示されて続けているし〜(=_=)!

deadbeefが気になってしょうがなかったので、グーグル先生に質問したら、一番上にヒットした記事が

「死んだ牛肉しか届かないのです。」

と!!

CHAKOも同じだよ!!いいね10回押したい!と筆者に共感しまくっていました。

▽参考にした情報
▼死んだ牛肉だけが届く日々からの脱却 (LINE BOT)
https://qiita.com/jiz/items/0cd1b39bf54184f20d10

要は正常にWebhook通信の受信はできていて、デフォルトでuserIDのところに、なんとお洒落な「Udeadbeefdeadbeefdeadbeefdeadbeef」が込められていた、これは正常な動きで、だからこそ、CHAKOは、「Udeadbeefdeadbeefdeadbeefdeadbeef」と出会えたのね、と認識しました。

そして、[接続確認]時にエラーが出てしまう件を冷静に状況を振り返ると、CHAKOが設定しているノードは、入力ノードでhttpsを受け取って、受け取った内容をデバッグ・ウィドウで表示させているだけ、出力ノードで明示的にhttpsの応答を返せない状況であること、これに漸く気づきました。

慣れている人にとっては当たり前のことが、なかなか気づけず、お恥ずかしい。。。

そのため、現在のフローにおいては、出力ノードを追加して確認する方針とします。

入力 http ノード
出力 http response ノード

の関係で出力ノードを追加します。追加後はデプロイをお忘れなく。

この状態で、再度、そうすると、「成功しました」(Success)という正常終了のメッセージが表示されて、通信が成功したことを確認できました。
やったネ!

デバッグ・ウィンドウ側は、これまでと同じフローなので、以前と同じように、Webhook通信を受信したところまでを確認することができました。

つまり・・・

Udeadbeefdeadbeefdeadbeefdeadbeef

と常にお目見えできるわけですね。

通信確認ができたので、試しにスマホ側のLINEアプリから、メッセージを送信してみます。

 

 

あら、すぐに既読になるんですね。既読スルーにならないのか。

この時、Node-RED側でどのように値を受け取っているのか、デバッグ・ウィンドウで確認してみます。すると、きちんとメッセージを受け取っていることがわかります。

メッセージが格納された様子

 

今日イチのwordは、

Udeadbeefdeadbeefdeadbeefdeadbeef

で決まり!

 

LINEとNode-RED間での通信確認をしたところまでで、本日は閉店ガラガラ。
また続きは明日以降に〜

CHAKO