--:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LINEのBotを作った話

01:18

https://www.qwintet.co.jp/20
上記のコードを大変流用……もとい参考にさせていただきました。

とりあえず備忘録的なやつ。
環境はPHP + heroku + Messaging API
herokuのアドオンにあるpostgresqlのデータベースを使って単語を登録し、発言を返す簡単なモノ。
linebotScreenShot

社内のチャットツールでBotを作って遊んでいたため、そのソースを流用して作れないかなぁーと思って始めたのがきっかけ。
結論としては使えなかったんだけど……。hubot + herokuの環境はサンプルもあまりないし、ドキュメントは古いものばかりだし、そもそも有志の方が作ったhubotのアダプタの使い方がよくわかりませんでした。理解力どうにかしろ。
http://qiita.com/pyonk/items/f276e6fd71ff63fed88f

仕方ないから新しく作り直すことに。なに、ロジックができてればどうにかなる精神。
右往左往しながらも最初に挙げたサイトを見つけ、PHPで作成することに。
RubyとかGoとか、選択肢はたくさんあるようなので詳しい分野でやるのがいいんだろうけど、PHP含め何もやったことがない無能にはPHPで作るのが一番楽っぽそうだった。一ファイルで済む(サンプルを見つけた)しね。

SDKとかあったんで参考にすればいいんじゃないかな。そのままherokuに上げたらエラー吐いたからスルーすることにしたけど。
https://github.com/line/line-bot-sdk-php

結局作るのに一週間かかったかかからなかったか。時間がかかったがどうにかなりました。無謀なチャレンジをせずにさっさとPHPで作ってればこんなにならなかったのにね!

時間かかった原因として、今回始めてLINEのBotに触ったから右も左もわからず調べていたところ、混乱してしまったのはデカい。
何、herokuに環境変数を入れる? Channel ID?Channel Secret?MID?……MID?そんなのないぞ?
みたいな感じ。あとcallcack URLの設定? Webhook URLの設定?どっち?
みたいな。
旧APIのBOT APIと現行APIのMessaging APIがあるってことに気づくのに時間がかかりました。それまでにいろんな記事読んだからもうどれが正しいのやら。

それと、herokuのIPを固定するためにFixieなるアドオンを入れたんだが、どうにもLINEに返すIPが一定にならずはじかれてしまう。解決方法がよくわからずにあれこれ探しているうちに、Server IP Whitelistに設定しなければすべてを受け入れてくれるようで。セキュリティ? まぁ外に公開しないし平気でしょ(楽観視)

そもそも時間かかった一番の理由は付け焼き刃で作ろうとしていたところ。
PHPもherokuもMessaging APIもPostgresqlも、というかわからんのにいきなりデータベースと連携させようと思うなって話。
全部コピペで済まそうとしないでちゃんとドキュメント読んでからしっかり実装しようね!
ドキュメント読むの苦手なんだよなぁ

終わってみるとすっごい簡単に実装できた。
Messaging APIすごい。サンプルすごい。ジータちゃんかわいいなぁ(自画自賛)


コメント

    コメントの投稿

    (コメントの編集・削除時に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    Trackback URL
    Trackbacks



    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。