LINE Messaging API の Webhook 先に Twilio Functions がおすすめです。
Twilio Functions は、 AWS Lamda みたいな サーバーレス でプログラムを動かせる環境なのですが、
- https に対応している
- 結構な無料枠(毎月10,000アクセスまでは無料とかそういうかんじ。あとでちゃんと調べて補足します)
- nodejs つかえる。 npm modules も、簡単に追加できる
といういいところがあります。
Lamda との違いは、
- いろいろ隠蔽してくれてて、こまかなパラメータを気にしなくていい
- Endpointの公開もセットでついてるので、別途 Amazon API Gateway な設定をしなくていい
- (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 を追加して利用することができました。