GASとLINEBOTで復習を効率的に行う
私はいくつかの資格を取得しています@Hirasawa1987のプロフィールに乗せているのでここでは割愛します。
資格の勉強する際に気を付けているのが、復習のタイミング!(勉強したことをよく忘れるんです・・・)
日付を書いた付箋を貼ったり、色で復習のタイミングを分けたりいろいろ試してきました。勉強当時にあったらよかったなと思うものを今回作ってみました。
エビングハウスの忘却曲線
皆さん、ヘルマン・エビングハウスをご存じでしょうか?
そうです!あの有名なエビングハウスの忘却曲線の人です
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ヘルマン・エビングハウス
記憶に関する実験的研究の先駆者で、忘却曲線を発見したことで知られるドイツの心理学者
エビングハウスによると、
1日後には、節約率が34%であった(1日後には66%忘れる)
2日後には、節約率が27%であった(6日後には73%忘れる)
1ヶ月後には、節約率が21%であった(31日後には79%忘れる)
できたもの
エビングハウスという巨人の肩の上の乗りましょう!復習に最適なタイミングでLINEを送ってくれます。
仕組み
システム
1.LINEBOT(暗記BOT)に覚えたい内容を入力。
2.googleスプレッドシートに登録される。
3.登録された時間から1日、7日、31日経過したものをLINE Notifyで通知する。
LINEBOTからメッセージを登録
LINEBOTの作り方は以下の記事を参考にしています。
googleスプレッドシートのスクリプトは以下のように組んでいます
var SPREADSHEET_ID = '';
function doPost(e) {
// ユーザーのメッセージを取得
var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
var messageParameter = userMessage;
//対象のスプレッドシートを取得
var targetSs = SpreadsheetApp.openById(SPREADSHEET_ID);
//対象のシート取得
var targetSht = targetSs.getSheetByName('シート1');
//最終行取得
var lastRow = targetSht.getLastRow();
//現在年月日取得
var date = Utilities.formatDate(new Date(), 'Asia/Tokyo', "yyyy/MM/dd");
var date2 = Utilities.formatDate(new Date(), 'Asia/Tokyo', "HH:mm:ss");
var date3 = Utilities.formatDate(new Date(), 'Asia/Tokyo', "yyyy/MM/dd HH:mm:ss");
Logger.log(date);
Logger.log(date2);
var targetRow = lastRow+ 1;
targetSht.getRange("A" + targetRow + ":E" + targetRow).setValues([[date, messageParameter, date, date2, date3]]);
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
var today = new Date(); // 今の日付と時間
Logger.log(today);
function memory() {
// スプレッドシートの内容を取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("シート1");
for(var i = 2; i < 500; i++){
var content = sheet1.getRange(i, 2).getValue();
var date = sheet1.getRange(i, 5).getValue();
var dt = today - date;
var day = Math.ceil(dt / 1000 / 60 / 60 / 24);
Logger.log(day);
if (2 <= day && day < 3 || 9 <= day && day < 10 || 39 <= day && day < 40){
sendHttpPost(content);
}
}
}
// LINE notifyへの通知
function sendHttpPost(content){
var token = [''];
var options =
{
"method" : "post",
"payload" : "message=" + content,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
var SPREADSHEET_ID = '';
対象のスプレッドシートのID(対象のスプレッドシートを開いてURLのdocs.google.com/spreadsheets/d/ここの文字列/edit#gid=0)を入力してください。
// LINE notifyへの通知
function sendHttpPost(content){
var token = [''];
var options =
{
"method" : "post",
"payload" : "message=" + content,
"headers" : {"Authorization" : "Bearer "+ token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
token
=''
の間にLINENotifyで発行したkeyを入れます。
LINE Notifyの作り方は以下の記事を参考にしています。
入力が終わったら、スクリプトエディタの公開を押してウエブアプリケーションの導入を押して設定します。
Who has access to the app:
の部分がデフォルトではOnly myself
になっているのでAnyone, even anonymous
に変更します。
以下のようにURLが発行されるのでコピーしてLINEDevelopersのMessaging API設定の下のほうにあるWebhookに登録します。
以上で、入力側の設定は終わり。LINEBOTから入力すると以下の画像のように入力されていると思います。
通知設定
googleスプレッドシートのスプリクトエディタから時計のようなアイコンを押してトリガー設定をします。
トリガーの追加
を押して設定します。
イベントのソースを選択
を時間主導型
に変更して時間の間隔を設定します。
以上の設定で1日後、1週間後、1ヶ月後に通知が来ます。
参考サイト
大変参考になりました、ありがとうございます。
終わりに
試験勉強の復習方法で付箋貼ったり、日にち記入などのめんどくさい部分が解消できそう。
今回はテキストのみの入力なので画像もできたら幅が広がりそうだなと思いました。
Author And Source
この問題について(GASとLINEBOTで復習を効率的に行う), 我々は、より多くの情報をここで見つけました https://qiita.com/Toshiki0324/items/57fc5f7bc297d33b4ffc著者帰属:元の著者の情報は、元の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 .