2022_10_20 新木大地
今後、ゼミの研究等でLINE botに触れるひとが、よりスムーズに学べるように、知識がない状態では調べにくい前提知識や、個人的な解釈についてお話していきます。LINE botを利用するメリットや、LINE botとはなにか?については割愛します。
まずは『LINE botをつくるときの技術えらび』から述べていきますね。
プログラミング言語は、GAS、またはPythonの2択で考えています。
僕がこれまで作ってきたLINE botは4つともすべて、GASで作成しています。実はPythonでつくった経験がなく、今回はじめてpythonで書きました。
さて、4つのLINE botをすべてGASでつくったのは、なにも、技術につよいこだわりがあったからではありません。GoogleドライブやGoogleスプレッドシートとの連携が容易にできてしまうので、実務を想定した開発が多いLINE botの作成はGASになってしまいがちなんですよね。
また、一度プログラムをつくっておけば、24時間勝手に動作してくれるので、GAS特有の難しさに慣れさえすればGASでつくるほうが楽に感じます。
では、Pythonで書くべきではないのか?というと、それは違います。上記のGoogle関連ツールを利用する場合をのぞけば、Pythonで書くメリットのほうが大きいです。理由は単純に、動作が速いから。GAS、かなり重いですよ。ユーザがストレスを感じるレベルです。
まとめると、Google関連ツールをつかうときはGAS。それ以外ならPyhton。
実際に簡単なプログラムを動かしてみて「これ他のひとハマりそうだな」と思ったところを書いていきます。
Pythonで書いたプログラムは、GASとちがい、”24時間勝手に動作してくれる”ということはありません。
プログラム書いておいておけば、それだけで勝手にLINEが動いてくれる。という状態にするには、プログラムをサーバー上におく必要があります。HerokuかAWSのサービスを使うことでサーバーを用意しましょう。
Herokuはクセがつよく、僕の技術力では扱いきれなかったのと、2022年11月から有料化するそうなので、今回はAWSのサービスである”API Gateway”と”Lambda”を使ってサーバーを用意します。Lambdaでプログラムを書いて、API Gatewayでそのプログラムを使うイメージです。
LINE botでは、ユーザとプログラムの間で相互にメッセージのやりとりをする必要があります。ユーザからLINEでメッセージが送られると、そのメッセージをpythonでうけとり、なんらかの処理をして、LINEに返答することが多いですよね。
このとき、LINEとpythonプログラムの間で、データの受け渡しの仲介人を担うのが”webhook”です。LINEとpythonプログラムは直接のやりとりができないので、webhookの設定が必要になります。
システム開発者むけのLINEの設定はLINE Developersから行えます。Messaging APIのタブをみつけて設定してください。
pythonプログラムを”使える状態”にしてURLで表わす、一連の作業を”デプロイ”といいます。webhookにはデプロイしたURLをセットしましょう。