LoginSignup
6
6

More than 5 years have passed since last update.

SERVERLESSフレームワークを使って15分でLINE Bot作る

Posted at

背景

  1. この記事を見かけて、SERVERLESS使えばもっと簡単に早く作れるんじゃないかと思った。このURL参考にすれば基本的に作れます、おすすめ。
    LINE BOT APIを使ってAWS Lambdaでサーバレスな版画風写真加工BOTを作る(Node.js)

  2. LINE Developerアカウントを持て余していた。

  3. SlackのBot作ってて楽しいってなってた。
    Hubot × Raspberry Pi2で電車の遅延情報をSlackに流す

大まかな手順

  1. serverlessをインストール
  2. aws-cliをインストール
  3. aws configure
  4. sls project create
  5. sls function create hogehoge
  6. s-function.jsonのmethodをPOSTにする(LINEのCallbackはPOSTリクエストで飛んでくる)
  7. npm install --save serverless-cors-plugin(CORS設定しとかないと403になっちゃう)
  8. s-project.jsonにplugin書く(SERVERLESSのGithubに書いてある)
  9. handler.jsに処理書く
  10. sls function deploy
  11. sls endpoint deploy -a(初回だけ-aしないと、CORSの設定が反映されない)
  12. LINEのCallbackにendpointのURLを書く。(※ポート番号を443にする必要あり。要するにhttps.....amazonaws.com:443/dev/hogehogeにする。)

以上。handler.jsに書く処理量によりますが、疎通確認するだけなら15分もかからない。SERVERLESSすごい。

Botでできるようにしたこと

誕生花教えてくれる

疎通確認も含めて、下記記事で作った自前の誕生花APIをLINE Botが叩く

電車が遅延していたら教えてくれる

Hubot × Raspberry Pi2で電車の遅延情報をSlackに流すで作った機能を流用。LINE BotのCallback用EndpointをPOSTで叩けば、Lambdaが呼び出されるので、遅延発生時にSlackだけじゃなくLINE用EndpointにもPOSTすれば呼び出せる。ただ、LINEではユーザをmidで管理しているため、自分の普段使っているLINEアカウントのmidをデバッグで見て、マジックナンバー化してそいつに投げてる。LINE用のLambdaにcronとか埋め込んでもいいが、リクエスト回数で課金されるので、常に起動しているSlack Bot(Raspberry Pi)にポーリングさせてる。ただ、作ってからまだ電車遅延してないので動作未確認。

今後やりたいこと

結構反応が鈍いので、なんとかしたいが原因はよくわからない。いろいろ拡張したいが、仕事中はLINE使わないので、結局使わない気がする。全部Slack Botの機能になりそう。

なんか思いついたらやります。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6