Googleカレンダーの情報をLINEグループに自動配信する
留学+自粛生活で四股を踏んじゃいたくなるくらいに太り、ちょっと前からスポーツトレーナーの友達にトレーニング・食事と体重の管理をお願いしています。
でも、しょっちゅう報告を忘れるし、それで怒られるしで(自分が悪いケド)LINEbotを使ってこの作業を自動化させたいと思います。
機能概要
・Googleカレンダーに記録したデータをLINEで送る(←今回はここを作ります)
・特定の時間までに記録されてなければリマインドする
・毎週日曜日に月/週の経緯(グラフ画像)を送る
・前日と比較して体重が減ってたらめちゃくちゃに褒めてくれる
今回の目的
・GASに触れる、GASでGitHubを使ってみる
・APIを使ってみる
環境を作る
1. コード管理導入
今回コード管理にGitHubを使いたいのでGithubとGASを連携します。
参考:https://qiita.com/Massasquash/items/1ebb722272a114c62d79
拡張機能Google Apps Script GitHub アシスタントをインストール
https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo/related
2. 体重記録用カレンダーの作成
体重記録用のカレンダーを新規作成しカレンダーのIDを取得します。
対象カレンダーの詳細から[設定と共有]>[カレンダーの設定]>カレンダーIDをコピー
Googleカレンダーの予定をLINEに送る
参考:https://qiita.com/ikei/items/8c837444dcab6c0e4629
1. APIの導入
LINE Notifyにログインして連携を行います。
ここで接続するグループを指定できます。
2. コード
function todayWeight() {
var accessToken = PropertiesService.getScriptProperties().getProperty('LINE_TOKEN');
var cal = CalendarApp.getCalendarById('[email protected]');
var today = Utilities.formatDate(new Date(), 'JST', 'M/d');
var weightData = getweight(cal);
//LINEbotで通知
var sendToLineMessage =
{
'method' : 'post'
,'payload' : 'message=' + '\n' + today + 'の体重報告:' + weightData
,'headers' : {'Authorization' : 'Bearer '+ accessToken}
,muteHttpExceptions:true
};
UrlFetchApp.fetch('https://notify-api.line.me/api/notify', sendToLineMessage);
}
/**
* カレンダーからイベントを取得し体重データを返す
*/
function getweight(prmCal) {
var strWeight = '';
var arrWeight = prmCal.getEventsForDay(new Date());
if ( _isNull(arrWeight) ) strWeight = '本日の記録がありません。';
for (var i=0; i<arrWeight.length; i++) {
strWeight += arrWeight[i].getTitle();
}
return strWeight;
}
/**
* NULL判定
*/
function _isNull(prm) {
if ( prm=='' || prm===null || prm===undefined ) {
return true;
} else {
return false;
}
}
3.トリガーの設定
今回は毎日12時~1時にトレーナーとのグループに投稿されるようにします。
実際に動かしてみる
まとめ
・LINE Notifyは便利!いろいろなことに使えそう
・こういうシステム作りたい私は、そもそもダイエットに向いてない
まだ最低限の機能だけどこれから機能追加して激やせ最強ダイエットツール開発するぞ~(クリームパラーメンとポテチ食べたいビール飲みたい)
Author And Source
この問題について(Googleカレンダーの情報をLINEグループに自動配信する), 我々は、より多くの情報をここで見つけました https://qiita.com/aaari95/items/e94e7ffd19cafcf4ccef著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .