LINE BOT API でのハマりどころ
LINE BOT API
こんにちは、🌸満開で花見日和ですね。
LINE BOT API が公開されたので golang で bot を一番手軽に出来そうな環境 heroku
上で作ってみました。
プログラム自体は JSON をコールバックで受け取り、メッセージを送るにはセキュリティ情報を設定し所定のフォーマットで JSON を POST するだけなので特に難しいところはないですが環境面や設定でハマりそうなポイントがあったので、まとめておきます。
ソースコードのサンプルは PHP であれば、ネット上にたくさんあるようなので Qiita
などで参考にしてみてください。
手順
LINE developer に登録し BOT API を利用出来る準備を整える LINE Developers
BOT が LINE メッセージを受け取った際のコールバック実装
LINE BOT には証明書および固定 IP アドレスが必要になるので、手軽なのはheroku
+Fixie
で試すのが良いと思います。
ハマりポイント
LINE developer 登録などに関しては特に問題はないと思います。先着で人数制限があるようなので試したい方は早めに登録をした方が良いでしょう。
コールバック実装において私がすんなりいかなかったポイントを本BLOGに記載しておきます。
コールバック以外の API 実装に関しては、とにかく LINE からのレスポンスを確認すること。これに尽きます。ステータスコードとエラー内容(レスポンスの BODY)を常にデバッグ出力して API コール時の何に不備があるか確認してください。だいたいは以下のようになるでしょう。
・セキュリティの設定が不正(CHANNEL関連のキーを正しく HTTP ヘッダに設定出来ていない)
・API コール時のパラメータが不正(メッセージを送る際に宛先が配列だったのに string 単体で送っていたのでメッセージ送信は何度か失敗しました)
・IP アドレスのホワイトリストが正しくない
Callback URL
LINE develper の設定画面から Callback URL
を設定するのですが、ここで指定する URL は https
であることと :443
のポート番号指定をする必要があります。
例)
https://yourdomain.com:443/bot/callback
設定し保存時に Not secure URL or port number not sepcified.
とエラーメッセージが出た場合はプロトコルとポート番号を確認しましょう。
設定したコールバックが呼ばれない
私は1日ほどして正常にコールバックが呼ばれるようになりましたが、作成当初は bot にLINE メッセージをしてもコールバックが呼ばれず、何が悪いのか検討もつかなかったです。 しかし翌日になると正常にコールバックが呼ばれるようになったので、LINE developer で Callback URL を設定しても即反映ではなさそうですので気をつけてください。
Server IP Whitelist
BOT がメッセージ送信する際に許可する IP アドレスを登録するのですが、これも反映まで時間がかかるようです。
BOT がメッセージを送信した際に、LINE サーバからこのIPアドレスは許可してないよというレスポンスが届くのですがこちらも Fixie
の画面から得られる IP アドレスを LINE developer 設定画面から設定してしばらくするまでは正常に BOT が機能しませんでしたので気をつけてください。
しばらくはメッセージ送信時には以下のようなレスポンスが返ってきます。([X.X.X.X]は実際のIPアドレス)
{"statusCode":"427","statusMessage":"Your ip address [X.X.X.X] is not allowed to access this API."}
成功時
メッセージの送信が成功した場合は以下のような JSON がレスポンスとして返ってくるので、このレスポンスが返ってくるまで諦めずに頑張りましょう。
{"failed":[],"messageId":"1460222924676","timestamp":1460222924676,"version":1}
LINE さんに要望
コールバックが呼ばれない間は、何が問題で呼ばれないのかさっぱり分からずここで断念する人が結構いるのでは?と思いました。
管理コンソールなどで、エラーログだけ見られるようにしてもらえると非常に良いと思いました。
2015年 振り返り
ほとんど blog を書かなくなったでお馴染みの yone098 です、こんにちは。
今年は、仕事でずっと Go を書いていました。前半は Java も書いていましたが、後半は Go のみ書いていたように思います。
ムーミンのソーシャルゲームのサーバサイドを実装し、別の開発でも Go1.5 を採用したので1年以上書き続けてやっと Go の事が少し理解出来たと思います。
6月
ムーミンのソーシャルゲームをリリースしました。
開発基盤に libGDX を採用し iOS, Android ともに Java で開発することによって(iOS用には RoboVM を併用)、基盤の資産やノウハウもかなり溜まりました。
日本国内だと一番 libGDX での実績があるのではないでしょうか。
一緒に開発してみたいという方は是非、連絡してください。
Dockerエキスパート養成読本が発売されました。
Dockerエキスパート養成読本[活用の基礎と実践ノウハウ満載!] (Software Design plus)
- 作者: 杉山貴章,大瀧隆太,Yugui(Yuki Sonoda),中津川篤司,前佛雅人,松原豊,米林正明,松本勇気
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
9月
Seasar Conference 2015 で Javaプログラマ向けに Go のことを話してきました。
久しぶりに Seasar でのイベントで懐かしい人に出会えて楽しかったです。
Seasar 全盛期に活躍していた人たちは、まだまだ現役であり第一線で活躍されていて嬉しく思いました。DJ HIGAYSUWO には今後も注目していきたいなと思います。
seasar.connpass.com
メンバー
会社のメンバーが少しずつ増えてきて優秀な人材を今年も数名を採用することが出来たのでとても嬉しく思っています。
2人とも20台前半で、とても若いのにプログラミング能力が非常に高いのでワクワクしているところです。
これからも宜しくお願いします!
バスケ
後半は仕事が忙しくなって練習に行けなかった時もありましたが大きな怪我もなく楽しくバスケ出来ました。
観る方は、NBA が面白すぎて去年 WOWOW に加入したんですが全試合観たいので nba.com の LeaguePass を遂に購入しました。
Live での試合も見れますが、終わった試合でも観ることが可能なのでお勧めです。今年は GSW の試合は全て観ています。
ingress
仕事とバスケ以外では ingress でたくさん歩きました。1億APまではもう少し頑張りたいです!
ハイタン
今年は突然食欲が無くなって死んじゃうんじゃないかと思う時があって初めて病院に連れて行きました。
点滴打ったらすぐ元気になりました。
今年のベスト動画です💙
まとめ
仕事もバスケも遊びも全てが楽しい1年でした。
今年残り少しと来年も頑張ります!
アルゴリズム&デザインパターン 献本御礼
矢沢久雄セレクション アルゴリズム&デザインパターン が会社に届きました📕
ありがとうございます💙
矢沢久雄セレクション アルゴリズム&デザインパターン (日経BPパソコンベストムック)
- 作者: 日経ソフトウエア
- 出版社/メーカー: 日経BP社
- 発売日: 2015/12/12
- メディア: 単行本
- この商品を含むブログ (1件) を見る
2015年
気づいたら 2015年は blog を書いていなかったので近々2015年を振り返っておこうと思い🐭