LINE BOT アカウント:ユーザーから送られてくる LINE の受信元/ユーザーに返ってくる LINE の送信元。
Google サービスアカウント:Google スプレッドシートや Google ドライブを操作する Google アカウント。
MySQL データベース:やり取りを行うためにユーザーの前回の回答等を保存しているデータベース。
PHP プログラム:佐々木が作った、回答をMySQL データベースに保存したり、LINE BOT アカウントやGoogle サービスアカウントを操作したりするプログラムファイル。
サーバー:PHP プログラムを保存し、実行するもの。
寄宿舎届出サポートにメッセージを送る。
↓
LINE BOT アカウントが送られてきたメッセージの内容をサーバーに送る。
↓
サーバーがPHP プログラムを実行する。
必要に応じてGoogle サービスアカウントでスプレッドシート等を操作した後、返信内容をLINE BOT アカウントに送る。
ユーザーの回答はMySQL データベースに保存される。
↓
寄宿舎届出サポートから返信が返ってくる。
以下は比較的高度な内容となる。
やり方はネットで調べればわかる(「FTP やり方」「サーバー名 FTP やり方」等で検索)と思うので、調べながらやってほしい。
FTP という方法でサーバーからファイルをダウンロード/アップロードすることが必要になる。
SSL と PHP8.0 はデフォルトでは有効になっていないかもしれない。
SSL は設定していない場合LINE BOT アカウントがサーバーに受信内容を送れない。
PHP 8.0 以上に対応していない場合はPHP プログラムが実行できない。
WordPress が載った サーバーならMySQL データベースも付帯している。
それにアクセスするための認証情報は WordPress の設定ファイルである wp-config.php(「wp-config.php 場所」で検索し、FTP でダウンロードする) に載っているものを使うか、もしくはサーバー管理画面から新しく作成することが可能である。
参考:Line Messaging API で簡単 Line Bot 作成(超初心者向け)
これは前のものをそのまま流用すればよいので、わざわざ用意する必要はない。
だが、何らかの理由でGoogle サービスアカウントを新しく用意したい場合はSheets API を使って PHP で Google スプレッドシートにデータを保存するを参考にアカウントを作成、json ファイルを取得する。
ただし、この記事では Spreadsheet API のみ有効にしているが、寄宿舎届出サポートでは Drive API も合わせて有効にする必要がある。
FTP で kishukusha-report-supporter/フォルダを元サーバーからダウンロードし、新サーバーの public_html/配下のどこかにアップロードする。
※アップロードに数時間ほどかかるが、コマンドラインを使う場合(このページ最下部参照)は数分で終わらせることができる。
kishukusha-report-supporter/フォルダの中に config.php があるので、それを FTP でダウンロードし、
- WEBHOOK_PARENT_URL(kishukusha-report-supporter/フォルダの URL(webhook.php が配置されている親フォルダの URL))
- DB_...(MySQL データベースの認証情報)
- CHANNEL_ACCESS_TOKEN, CHANNEL_SECRET(LINE BOT アカウントから取得したチャネルアクセストークンとチャネルシークレット)
- BOT_EMAIL(Google サービスアカウントのメールアドレス)
を書き換えて、FTP で同じ場所にアップロードして上書きする。
LINE BOT アカウントの設定画面から Webhook URL に kishukusha-report-supporter/フォルダ内の webhook.php の URL※を設定する。
※ブラウザでアクセスすると「ここが webhook.php です」と表示される URL。
設定する際は「https://...」で始まるようにする(して、サーバーも SSL の設定が必要)。
※前のものを流用する場合はこのステップは飛ばしてよい。ただし、ステップ 1.でコマンドラインを使用した場合は前のサーバーの credentials.json を手動でアップロードする必要がある。
認証情報を含んだ json ファイルを credentials.json という名前にして kishukusha-report-supporter/配下に FTP でアップロードする(して、前のものがある場合は上書きする)。
ボットにアクセスされる(メッセージが送られる)度に、委員会行事の開催日(の開始日)か、アップロードされた日のどちらか遅い方から 1 週間経った諸行事届の画像が削除されるようになっているが、アクセスされなかった場合でも削除されるようにする。
サーバーに cron というサービスがあるので、それに kishukusha-report-supporter/配下の delete-shogyoji-images.php というPHP プログラムファイルを設定し、一日 1 回稼働させるようする。
サーバーに SSH 接続できる(そしてサーバーに git と composer(コマンド名)がインストールされている)場合はサーバー上で下記を実行する。
※SSH 接続はパソコンからリモートのサーバーのコマンドラインにアクセスする方法である。やり方はネットで調べること。
cd "public_html/のパス"
git clone https://github.com/philip82148/kishukusha-report-supporter
cd kishukusha-report-supporter
composer install
これにより public_html/直下に kishukusha-report-supporter/というフォルダができ、composer というコマンドにより kishukusha-report-supporter/直下に vendor/というフォルダができる。