【はじめに/背景】
User Local とは、LINEやTwitter、Facebookなどに、簡単に自動返信機能を実装できるサービスです。
以下サイト内、「開発者向けAPI申込」で登録できます。
無料でも十分使えます。
User Local 登録後、「プラットフォーム連携」を選択し、必要な情報を入力する "だけ" でbotが作れます。
プラットフォーム連携機能で連携できるのは、LINE@、LINE(旧)、Facebook、Twitterの4つです。
そこで、LINE@と連携させてbotを作ってみることにしました。
【User Local と LINE の連携】
LINE@との連携で必要な情報は以下「Channel ID」「Channel Secret」「Channel Access Token」です。
LINE@に登録後、LINE@ MANAGER上で「アカウント設定」→「Bot設定」した後、LINE developers上で得られる情報です。
LINE関係の登録は以下からできます。(私はDeveloper Trialを選択しました。)
その後、User Local のプラットフォーム連携で必要な情報を入力していきます。
入力すると、LINE developersで設定する「Webhook URL」が表示されます。
上記Callback URL を Webhook URLに設定すれば、LINE Botの完成。
と思っていた時期が私にもありました。
【ハマったところ】
LINE上でコールバックURLは呼ばれるけど、LINEからスマフォへの応答が無い。
User Local の「新着会話ログ」を見ると、確かにLINEからAPIは呼ばれている。
そのため、User Local → LINE への送信で失敗していると予測しました。
図にすると以下のような感じです。(☓が失敗しているところ)
よく考えたら、User Local側のサーバをLINEの「Server IP Whitelist」に登録していませんでした。
Callback URL のホスト名を dig って登録。
・・・だが、できません。。
なんども dig っていると、どうやら「chatbot-gateway.userlocal.jp」のIPアドレスは変更されるようです。
nslookupで調査した結果は以下画像です。
この他にも「27.96.36.72」となることもありました。
何度も dig っていると、IPアドレスは "124.~" と "27.~" の2種類であることが分かりました。
ということで、LINEの「Server IP Whitelist」に登録。
サブネットマスクが最大/30であることに注意して入力。
これでUser Local側のサーバからLINE側のサーバへアクセスできるようになる!
・・・と思いましたが、以前としてLINEからスマフォへメッセージが送られない。。
どうやらUser Local側で、コールバックとしてAPI呼び出されるサーバと、API呼び出し後に返信するサーバのIPアドレスが違う様子。
そのため、上記を Whitelist に入れてもLINE側でアクセスが弾かれていたようです。
User Local側で返信するサーバのIPアドレスが不明のため、サブネットマスクを/24として登録してみました。
すると・・・スマフォに返信されるようになりました!
こんな簡単なことでも、ハマると時間がかかるものですね(;´∀`)
ひとまず、LINE Bot作成できて嬉しいです。
【作成したbot】
イケメン★botです。
ご登録して頂けると嬉しいです。
【感想/所感】
「りんな」bot と比べると、遥かに劣っているように感じました。
簡単な受け答えですら、見当違いの発言をします。
成長するのかな?
(りんなちゃんが凄すぎるだけかもしれませんが(;´∀`))
全体を通して、いろいろと勉強になって良かったです。