nodejs
twilio
linebot
LINEmessagingAPI

LINE Messaging API の エンジンに Twilio Functions がおすすめ

LINE Messaging API の Webhook 先に Twilio Functions がおすすめです。

Twilio Functions は、 AWS Lamda みたいな サーバーレス でプログラムを動かせる環境なのですが、

  1. https に対応している
  2. 結構な無料枠(毎月10,000アクセスまでは無料とかそういうかんじ。あとでちゃんと調べて補足します)
  3. nodejs つかえる。 npm modules も、簡単に追加できる

といういいところがあります。

Lamda との違いは、

  1. いろいろ隠蔽してくれてて、こまかなパラメータを気にしなくていい
  2. Endpointの公開もセットでついてるので、別途 Amazon API Gateway な設定をしなくていい
  3. (Twilio Functions がそもそも Lamda を Wrap するように動いているらしい)

です。

注意点1 環境変数

Twilio Functions の環境変数は、文字列の長さ制限があるようです。
LINE CHANNEL ACCESS TOKEN はとってもながいので、一つの変数におさまらないようです。
ですから、

LINE_CHANNEL_ACCESS_TOKEN1 = 'てきとうに100桁くらい'
LINE_CHANNEL_ACCESS_TOKEN2 = 'てきとうに100桁くらい'

と、ぶったぎって、定義しておいて、使うときに

  // create LINE SDK config from env variables
  const config = {
    channelAccessToken: process.env.LINE_CHANNEL_ACCESS_TOKEN1 + process.env.LINE_CHANNEL_ACCESS_TOKEN2 ,
    channelSecret: process.env.LINE_CHANNEL_SECRET,
  };
  const client = new line.Client(config);

こういう感じで、つなげてあげる方法をおすすめします。

注意点2 @ つきの npm module の追加

npm module も簡単に追加できて、とても便利です。

でも追加できるは、できるのですが、どうも @line/bot-sdk というような @ つきの npm package の追加には、くせがあるようです。
なんどか、ためしてたら、通ったのですが、、、最初何回か、追加できなかったです。
 なにをどうしたら追加できるようになったのか、わかってないのですが、追加できることはできたので、希望をすてないでください。
(もし、追加する上手な方法をみつけたかたは、おしえてくださいませ)

下図のように、@line/bot-sdk は、2018.12.3 時点で、5.0.1 を追加して利用することができました。

Twilio Console Runtime Functions.png