GoogleとLINEで毎日のコンディションを記録するツールを作ってみた

『毎日コンディション』とは

 毎日の調子を手軽に記録するフォーム。

 毎日の記録をつけるのは大事だが、日記をつけるのはダルいし、カレンダーに書き込むのも面倒くさい。スマホで、1回2分以内に手軽にやりたいのである。

 そんな希望を叶える便利なツールが『毎日コンディション』である。

 こうやって毎日『LINE』に通知が来て、

 アイコンをタップして「今日の調子」を入力する。

 記録は『スプレッドシート』に積み上がっていくので、データが分析するのも楽。

作り方の記録

 今後『毎日コンディション』をカスタムする時などに「どうやって作ったのか」がわかっていた方がやりやすいので、作った記録を残す。

LINEで『Messaging API』を作る

 以下のLINEの開発者ツールで『Messaging API』を作る。

https://developers.line.biz/
The LINE Developers site is a portal site for developers. It contains documents and tools that will help you use our various developer produ...

LINEの『Messaging API bot』をグループに入れてグループIDを取得する

 筆者と妻に『毎日コンディション』のフォームを送ってほしいので、上記で作った『Messaging API』のbotをLINEのグループに追加したい。

 LINEのグループIDはwebhookを使わないと確認できない、非常に面倒くさい仕様なので一工夫する。以下の素晴らしい手順とスクリプトでグループIDを取得する。

GASでLINEのグループIDを確認する
Google Apps Scriptを使用して、LINEのグループIDを取得します。
function doPost(e){

varjson = JSON.parse(e.postData.contents);

varUID = json.events[0].source.userId;

varGID = json.events[0].source.groupId;

varsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

sheet.getRange(1,1).setValue(GID);

}

『Googleフォーム』でフォームを作る

 『Googleフォーム』で「今日の調子」を選択するフォームを作る。アイコンは『パワプロ』のを拝借。一般公開はしないからこれでよし。

『GAS』で『Googleフォーム』のURLをLINEのグループに毎日定時で送るスクリプトを作る

 ほとんどリファレンスのままの形で、任意の文字列を、任意のグループにポストするスクリプトを作る。

function sendLineMessage() {
var lineToken = 'YOUR_LINE_CHANNEL_ACCESS_TOKEN';
var formUrl = 'YOUR_GOOGLE_FORM_URL';

var message = {
'to': 'USER_LINE_GROUP_ID',
'messages': [{
'type': 'text',
'text': formUrl
}]
};

var options = {
'method': 'post',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + lineToken
},
'payload': JSON.stringify(message)
};

UrlFetchApp.fetch('https://api.line.me/v2/bot/message/push', options);
}

 スクリプトができたら動作確認をしてみる。いい感じ。

 日付はなんとなくタイムスタンプを取得するようにしてみた。

 次は、毎日定時でポストしてもらうために、『Apps Script』で「トリガー」を以下のように設定する。

 これでだいたい定時に『毎日コンディション』のフォームがLINEのグループに飛んでくるようになった。

コメント