はじめに
中2の弟の塾の模擬テストの英語がヤバく、このままだと他のみんなに置いていかれてしまうというくらいになっていました。
僕はあまり勉強をしたり教えたりするのは得意ではないのですが、とりあえず教科書の本文を覚えてればある程度いけるんじゃないかと思い、弟の大好きなApex Legendsをするときは英語の教科書の勉強をしようみたいな軽いルールを決めました。(他にいいやり方があるかもしれないけどとりあえずこれにしようと思いました。)
とはいえApex Legendsの魔力は凄まじく、弟は学校から帰ると吸い取られるように僕の部屋のデスクトップPCに向かって座り、ついApexをスタートしてしまいます。
なので、狭い机に勉強用具を開かなくても弟が英語の勉強をできる & 弟がやったのかを監視できるので、Google Forms
を使ってDiscordに通知が来るようにしました。
Formを作成
最初は、formを作成するところからスタートします。
こういう感じでformを作成しました。教科書本文のまんまです。
とりあえずformはこんな感じでいいと思います。
次はdiscordで色々と設定します。
Discord側での設定
Discordの方の操作に移ります。
まずは、
チャンネルの欄にある歯車を選択し、
Integrations
を選択します。すると、Create Webhook
というボタンが表示されるので、ここでWebhookを作っちゃいます。
適当にこんな感じで作ります。
これでDiscord側のWebhookの設定はできたので、次はformsのスクリプトエディタをいじります。
スクリプトエディタ
**縦に3つ並んだ点**のボタンから、`スクリプトエディタ`を選択することができます。エディタが開いたら、次のプログラムを貼り付けます。
var POST_URL = "WebHookのURL";
function onSubmit(e) {
var form = FormApp.getActiveForm();
var allResponses = form.getResponses();
var latestResponse = allResponses[allResponses.length - 1];
var response = latestResponse.getItemResponses();
var items = [];
for (var i = 0; i < response.length; i++) {
var question = response[i].getItem().getTitle();
var answer = response[i].getResponse();
try {
var parts = answer.match(/[\s\S]{1,1024}/g) || [];
} catch (e) {
var parts = answer;
}
if (answer == "") {
continue;
}
for (var j = 0; j < parts.length; j++) {
if (j == 0) {
items.push({
"name": question,
"value": parts[j],
"inline": false
});
} else {
items.push({
"name": question.concat(" (cont.)"),
"value": parts[j],
"inline": false
});
}
}
}
var options = {
"method": "post",
"headers": {
"Content-Type": "application/json",
},
"payload": JSON.stringify({
"content": null, // This is not an empty string
"embeds": [{
"title": "TOP TEXT CHANGE THIS IN SCRIPT",
"fields": items,
"footer": {
"text": "BOTTOM TEXT CHANGE THIS IN SCRIPT"
}
}]
})
};
UrlFetchApp.fetch(POST_URL, options);
};
そして、コードを保存します。
その次は、トリガーを設定します。
トリガー
この時計マークのようなボタンをクリックして、トリガーの設定画面に遷移します。 このような画面です。 ここにこのようにトリガーを設定しました。動作確認
回答するとこういう感じで届きました。
最初は多少タイムラグが発生したりしていましたが、いじってくうちに勝手に消えました。
弟に使ってみた結果
ダメでした
PCを起動するとすぐにApexをしてしまいそこからはもう夢中になってしまっています。僕のFormsはあっけなくお蔵入りになってしまいました。恐るべしApex... 僕は下手なので長時間やれないんですが、相当惹きつけられるもののようです。
しかし、今回のformsテストはそこまで悪いアイデアではなかったと思うので、改良していつか弟を英語漬けにしてやろうと目論んでいます。
参考リンク
https://qrunch.net/@RabbitFromHat/entries/DLoihiUeHrq8efTb?ref=qrunch