三連休に作業して調べたことまとめ


とある趣味よりプロジェクトで、連休中に久々にハッカソンレベルで突貫なサービスを作っていたので、そこで学んだことをまとめておきます。

なんかしてました

LINE Botで動かすサービスで、GCPのAPI, AWS S3等を使って色々やるスタートアップ向けのサービスです。

LINEBot自体はLINE公式アカウントの管理機能である程度やり取りは可能ですが、裏でサービスと連携したいときなどなどは専用のサービス(アプリケーション)は必須ですね。

今回突貫なのでherokuで用意しましたが、PyCon mini Shizuokaでherokuをじっくり触ったおかげで、デプロイはスムーズでした。スタートアップなサービスならherokuで良いでしょう。無料だし。

備忘録レベルのメモ

LINE Bot

Line messasing API

Messaging APIの概要 | LINE Developers

Messaging APIを始めよう | LINE Developers

  • メッセージの受信はwebhookと言われている。Slackbotと同じようにサービス側で受信するためのwebhook用urlが必要。サービス側にhttps://[servive-url]/callback の形式を受け取る必要あり。要件もあるのでこちら参照: https://developers.line.biz/ja/reference/messaging-api/#webhooks
  • メッセージ送信について詳しくはこちら: メッセージを送信する | LINE Developers
  • リプライメッセージはメッセージをハンドルした後に一度しか送れない(そのユーザーに対して送るってイメージ
  • プッシュメッセージは誰に対しても送付可能
  • LINEのドキュメントは、基本全部curl+REST APIな説明なので、Pythonの事情で見ようとすると頭の変換が必要。
  • というかjsonで見られるサンプルのメッセージデータをそのままPythonでつかえるようにしてほしい...
  • ユーザーへメッセージ送信するぐらいではユーザー管理は必要ないけど、ユーザーの操作を記録してコンテンツを返す場合は、セッション管理しないとだめだと思います(というかダメなはずです、むしろ普通のはずです)
  • LINE公式アカウントのカードタイプや確認ダイアログやボタンメッセージ系はテンプレートメッセージと呼ばれるもので操作する。
  • メッセージのやり取りは基本非同期推奨とのこと
  • 参考: Python + HerokuでLINE BOTを作ってみた - Qiita

AWS IAM

AWS S3のセキュリティ

AWS S3

heroku

Flask

python

そのほか

  • herokuのFreeプランってdynoがスリープした後にURLアクセスがあると動くけど、動く時間ってどの程度遅いのか気になる
  • LINE Botでやってみた限りだと復帰がそれほど遅いとは思わなかった。
  • そういう意味でherokuは神サービスです。
  • 人間の集中力は数時間しか持たないのもあって、コーディングやコードリーディングするときは定期的に場所を変えたほうが捗る