【LINE×Google Form】サークルの会計業務を自動化してみた

Google Form付きのメッセージを送るbotを作成して、フットサルサークルの会計業務を自動化しました。

## 動作イメージ
#### 1. 練習時間に合わせてLINE通知が来る
![bot.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/b24f499b-49cd-9768-4e59-eda66fef6b5b.jpeg)

#### 2. 部員はGoogle Formに回答して支払い報告
![form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/1e6ed44f-05cb-165a-76b9-f897ab9cc0ce.png)

#### 3. 自動で集計される
![answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/f109e7ee-d3d0-a7e2-9511-296a64bf3b3d.jpeg)

## 経緯
私が所属するフットサルサークルでは以下の要領でお金を管理していました。
- 体育館費を部員が支払う
- 部員が会計係に報告する
- 会計係がExcelに記録

しかし部員が会計への支払い報告を忘れてしまうことが多く、会計のExcel業務も面倒だったため、自動化しようと思いました。


## 環境
- Google Apps Script(GAS)
- Google Spread Sheet
- Google Form
- Line Messaging API

## 開発手順
1. LINE Notifyトークンの発行
1. 支払い報告のためのGoogle formを作成
1. 定期通知のためのGoogle Apps Script(GAS)作成

## 1. LINE Notifyトークンの発行
[LINE notify](https://notify-bot.line.me/en/) にログイン後、右上のリストからマイページへ移動
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/6ef02a14-dbdf-6eaa-360c-e06c8124129a.png)

マイページ下部よりトークンを発行するを選択
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/72443c39-7b42-e330-e7cb-1944275e403c.png)

トークン名に「支払い報告用bot」と入力し、トークンルームにサークルのLINEグループを選択
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/177cefd3-2bb2-552f-64dd-5591a87f8fd3.png)

トークンをコピー。忘れないようにwordなどに保存しておく。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/05435ef5-9a58-e5b6-2468-c52598a1a709.png)

## 2. 支払い報告のためのGoogle formを作成
[Google Forms](https://docs.google.com/forms/u/0/) にログイン後、以下のようなフォームを作成する。ここでは、氏名、支払日、利用施設、金額、支払い状況の項目を作成した。

![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/c07ee207-ba3d-d2dc-c7a4-d142687d831c.png)

![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/4409bb1d-2425-cb9a-e52c-95892bbf7712.png)

**便利なことに、回答は自動でスプレッドシートにまとめてもらえる。** フォームの編集画面の回答の欄にある、スプレッドシートで表示というリンクから確認が出来る。
![スクリーンショット 2024-04-28 000836.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/f67801be-0645-cebf-bf22-d56198c9ec03.png)

## 3. 定期通知のためのGoogle Apps Script(GAS)作成
[Google Apps Script](https://script.google.com/home)にログイン後、新しいプロジェクトを作成
![スクリーンショット 2024-04-28 154625.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/5d9fec61-6413-fe32-4972-b2592c108188.png)

赤枠の中のfunction関数を除去し、ファイル名を「無題のプロジェクト」から適切な名前に変更する
![スクリーンショット 2024-04-28 155156.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/6b8bb08f-fba7-1b5e-b058-e1503bcc74b3.png)

赤枠部分に下記のコードをコピペする。このとき、手順2で作成した回答者に送る用のGoogle Formリンクと手順1で取得したLINEトークンが必要になる。
```js
function postContent() {
  var content = "手順2で作成したGoogle Formの共有用リンク \n体育館費を払ってくれた人は回答お願いします!";
  sendPostContent(content);
}

function sendPostContent(content) {
  var token = ['手順1で取得したLINEトークン'];
  var options = {
    "method": "post",
    "payload" : {"message": content },
    "headers": {"Authorization": "Bearer " + token}    
  };
  UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
```
**ここで、確認のため画面右上のデプロイボタンを押すと良い。グループに通知が来れば成功である**

最後に定期通知の設定をする。画面左のトリガーボタンからトリガー作成画面に移り、画面右下の「トリガーを追加」をクリック
![スクリーンショット 2024-04-28 160213.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/bb7a1c18-b2ed-e263-79b1-2ce9ef2cd4c1.png)

例えば、毎週月曜日の練習後に通知を送りたい場合、以下のように設定する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3779891/138577e7-44d6-0f65-a0e1-673e123b7493.png)

以上の作業で、毎週月曜日の午後8時～9時にGoogle Form付きのメッセージが届くようになった。他の曜日にも送りたい場合は、別途トリガーを追加すれば良い。

## 導入効果
- 今まで月1万円分程あった報告忘れが無くなり、正確な管理体制が実現されました
- 部員と会計間の煩わしい連絡作業や、Excel作業から完全に開放されました

## 終わりに
本記事では会計業務を自動化するためのフォームとLINEボットを作成する方法を紹介しました。ぜひ試してみてください。