はじめに
お久しぶりです。しなもんです。
とある思い付きでLINEBotを作成しようと思ったのですが、
LINEのWebhookがSSLのリンクしか対応しない とかいうあまりにも個人で作れる設計じゃないので、
その辺を対応していった話をつらつらーと書いていきます。
※LINEBotの作り方については今回解説しません。
結論を先に出すと、主にGASにたどり着くまでの話になります。
追記:すでに似たような記事がありましたがまぁ気にしないでおきます。
SSLとは?
URLの最初が「https://」から始まるアレです。「http://」に「s」がついたやつです。
LINEBOTのためだけに建てるとか最高にめんどくさいからSSLやるという選択肢は無しで
対処法その1:Herokuを使う
一番最初に思いつくであろうHerokuです。
使える人は使ってると思います。
しかし私(学生)にとって最もめんどくさい問題があります。
アプリケーションの作成にクレジットカードの登録が必須らしいんです。
別にお金を取られるとか(もあるけど)ではなく、本人確認用です。
持ってないぞ!!!(迫真)
というわけで、Herokuは颯爽と諦めました。
メリット:
・ネットの情報がとにかく多い
・ある程度無料で使えるっぽい
・Gitと似たシステムでデプロイしやすい
デメリット:
・クレジットカードの登録が必須
・アクセス数が多いサービスには向いてない(当たり前)
登録ができる方は、ぜひ使ってみてください。
Heroku:
対処法その2:サーバーを立てる
正直最高にめんどくさかったです。
具体的に言うと、localtonnelというテスト用にSSLのドメインを生成する超便利なやつを見つけました。
一応使い方を載せておきます。一瞬で終わります。
まずjavascriptとlocaltonnelをインストールした環境で
$ npx localtunnel --port 3000(開けたいポート番号)
です。
すると、
your url is: https://hogehoge.loca.lt
ってurlが出てきます。スゴイ。
しかし大切なのはこれが「テスト用」ということです。
これ、url固定されません。一時的です。
まぁでも固定する方法もなくはないですが使えなかったです。
先ほどのコマンドに
$ npx localtunnel --port 3000(開けたいポート番号) --subdomain fugafugafuga
こう付け加えれば、(他人とかぶらない限りは)fugafugafugaというurlになるようです。
私の環境ではこいつは動きませんでした。(クソデカボイス)
メリット:
・似たサービスもあるが、こちらは無料でurl指定できるのが強い
・テスト用にWebhookを送りたい人におすすめ
デメリット:
・ある程度ネットワークの知識が必要
・ポート開放とかめんどい
・javascript分からないと分からない
あと執筆してて気づいたんですが、localtonnelを実行してるウィンドウを閉じなければurl変わりませんね。
でもどっちみちローカルで建てるのは難しいと断念しました。
対処法その3:Googleに頼る
インフラ業界、やはり最後に頼れるのはGoogleだった...
ということで、GoogleAppScriptに丸投げしました。
隠しすぎだろ!!!
個人情報だからねしょうがないね。
これの便利な点は、専門知識がいらないことです。
GUI操作で、デフォルトでバージョン管理機能があり、即デプロイできます。
なんだったんだ今までの苦労は!!!
Javascript自体初めて書いたのでほぼコピペですが...
メリット:
・無料。 さすがGoogle
・操作がGUIで便利
・Google関連のAPI(カレンダー、エクセルもどきなど)を簡単に呼び出せる
デメリット:
・多分Javascriptしか使えない
・1処理あたり最大30秒という制限がある
さいごに
なんだかGoogleをほめたたえるだけの記事になってしまいました。
私のように、学生でLINEBOT、特にWebhookを無料で扱いたい人は
GASを使ってみてね。
以上です。