はじめに
この記事では、「英語を勉強している」という大義によって、他にやるべきことがあるにも関わらず、アニメや映画を見ることを正当化し、一見意識高そうに堕落する方法を紹介しています
やりたいこと
「ねえ、確率の計算って知ってる?」
「かずまが3回連続で勝つとかすごく無茶振りなんですけどー笑」
「スゥー。俺、じゃんけんで負けたことねえから」
みたいな英語のフレーズをスラスラと言えるようになりたい
出典:[KONOSUBA -God's blessing on this wonderful world! 2 Episode 7 – An Invitation for This Knucklehead!][3]
[3]:https://www.crunchyroll.com/konosuba-gods-blessing-on-this-wonderful-world/episode-7-an-invitation-for-this-knucklehead-727601
※違法サイトは使っておりません。英語ネイティブ向けの有料ストリーミングサービスからの引用です
作ったもの
スプレッドシートに入れた英文を15分ごとにLINEに通知してくれるlinebot
英語を見て、対応する日本語を忘れてしまっていた場合、リンクをクリックする
15分ごとに通知するようにすれば1日100フレーズ復習できます
これで3ヶ月で最低限冗談言い合いながら会話できるようになりました
夜寝てる間には通知が30ほどたまるので、朝にまとめて復習します
寝る前と寝起きすぐの復習は記憶の定着率がいいそうです。
linebot(Line Messaging API)の登録
Line Developersから登録できます
登録方法は[富士通さんの解説がわかりやすかったのでご参考ください][1]
記事の頃から見た目が少し変わってますがわかる範囲だと思います
botのchannel accsess tokenと自分のuser idの取得、botへの友達登録まで済ませてください




スプレッドシート作成
なんでもいいので名前をつけて新規作成しましょう。作れたら1行目はスクショのようにします。

A列は復習したい外国語、B列は対応する日本語、C列は通知がどこまでされたかを表す数字です。
C列は最初は1と記入しておいてください。1つ通知が送られると数字が1ずつ加算されます
タイにいたためタイ語も入ってることご容赦ください。本来はタイ語が話せないという死活問題を解決することに始まり、英語に派生しました。ちなみに、タイ語は会話ができればよかったので発音記号とひらがなで覚えてました
gasの記述
[こちらの方][2]のスクリプトを参考にさせていただきました
コメントなど大変わかりやすかったため一部そのままのところもあります。ありがとうございます
Google Spread Sheetは1シートに対して1つのスクリプトを紐づけることができます
海外にかぶれてブラウザが英語設定なのもご容赦ください。

画像を参考にbotのchannel access tokenとuser id、スプレッドシートのリンクの3つを自分のものに変えてお使いください
z,y,zの羅列の部分です
/**
* @OnlyCurrentDoc
*/
// LINE Developersに書いてあるChannel Access Token
var access_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
// 自分のユーザーIDを指定します。LINE Developersの「Your user ID」の部分です
var to = "yyyyyyyyyyyyyyyyyyyyyyyyy";
function text_message(text){
return {
"type": "text",
"text": text
}
}
function choose_in_order(arrayData,isChange){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var arrayIndex = sheet.getRange(1,3,1,1).getValue();
var index = arrayIndex+1;
if(isChange == true){
if(index < sheet.getLastRow()){
sheet.getRange(1,3,1,1).setValue(arrayIndex+1);
}else{
sheet.getRange(1,3,1,1).setValue(1);
}
}
return index+':'+arrayData[arrayIndex-1][0];
}
function getEngs() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange(2,1,sheet.getLastRow()-1);
var values = range.getValues();
return values;
}
function getJaps() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange(2,2,sheet.getLastRow()-1);
var values = range.getValues();
return values;
}
function messagePush(){
//これは皆同じなので、修正する必要ありません。
var url = "https://api.line.me/v2/bot/message/multicast";
var headers = {
"Content-Type" : "application/json; charset=UTF-8",
'Authorization': 'Bearer ' + access_token,
};
var eng = choose_in_order(getEngs(),true);
/* 日本語も添えて送りたければこちらコメントアウト外してください
var jap = choose_in_order(getJaps(),true); */
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var arrayIndex = sheet.getRange(1,3,1,1).getValue();
var postData = {
"to" : [to],
"messages" : [
text_message(eng+'\n'+'https://docs.google.com/spreadsheets/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/edit#gid=0&range=A'+arrayIndex)
// スプレッドシートではurlにrangeというクエリをつけることで指定したセルに飛ぶことができます
]
};
/* 日本語も添えて送りたければこちらコメントアウト外して代わりにお使いください
var postData = {
"to" : [to],
"messages" : [
text_message(eng+'\n'+jap+'\n'+'https://docs.google.com/spreadsheets/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/edit#gid=0&range=A'+arrayIndex)
]
}; */
var options = {
"method" : "post",
"headers" : headers,
"payload" : JSON.stringify(postData)
};
return UrlFetchApp.fetch(url, options);
}
15分おきに通知(メッセージ送信)の設定
最後に、あるタイミングでスクリプトを走らせるバッチの設定です


同じように設定してください
15分おきだと多いと感じる方はここで変更することができます
編集リクエスト、解説して欲しいところなどのコメントお待ちしております
参考
[事前準備 LINE Messaging APIアクセストークンの取得 | 富士通][1]
[1]:https://jp.fujitsu.com/solutions/cloud/k5/playground/webhandson/preparation/06.html
[GASとLINE Messaging APIでpushメッセージのLINEbotを作る! | Qiita][2]
[2]:https://qiita.com/n_oshiumi/items/a1a02e03093825f41e01
[KONOSUBA -God's blessing on this wonderful world! 2 Episode 7 – An Invitation for This Knucklehead! | Crunchyroll][3]
[3]:https://www.crunchyroll.com/konosuba-gods-blessing-on-this-wonderful-world/episode-7-an-invitation-for-this-knucklehead-727601