こんばんは、猫が毛布でうまる時期が始まりました。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