![見出し画像](https://assets.st-note.com/production/uploads/images/74253545/rectangle_large_type_2_2f3c8e0799f2ba0468e26962f1e6bce1.png?width=1200)
Google HomeからClassroomに音声入力で連絡事項を書き込む
Googleホームから音声入力で、Googleクラスルームにクラスへの連絡事項が書込めたらいいなと思い、GASを使って作ってみました。GoogleHomeまたはGoogle Nestは設定済として話を進めていきます。まずはどんなシステムかいうと、下記の動画の通り
まずはIFTTT(イフト)のアカウントを作成する
IFTTTとは、異なるソーシャルメディアやプラットフォームを連携させるWebサービスです。下記URLからIFTTTのアカウントを作成します
![](https://assets.st-note.com/img/1647261240077-ASzCOJaZE5.png?width=1200)
ここではGoogleアカウントでIFTTTを設定したいと思います
![](https://assets.st-note.com/img/1647261345636-TRFrxqLOMM.png?width=1200)
アカウントが作成できたら下記をクリック
https://ifttt.com/explore
Applets(アプレット)を作成する
![](https://assets.st-note.com/img/1647267175547-5uBjR7ci9S.png?width=1200)
![](https://assets.st-note.com/img/1647264398572-CjLLldwc6T.png?width=1200)
addをクリック
検索にGoogleを入力して、Google Assistantをクリック
![](https://assets.st-note.com/img/1647267638097-CHG1cv8aDf.png?width=1200)
![](https://assets.st-note.com/img/1647267784414-UDz47yyPj3.png?width=1200)
![](https://assets.st-note.com/img/1647268092930-WwEDcfAUQ4.png)
日本語を選択して
Create triggerをクリックする
![](https://assets.st-note.com/img/1647268239856-xY0T1p9Fwv.png?width=1200)
![](https://assets.st-note.com/img/1647268319239-od3oRQnDny.png?width=1200)
![](https://assets.st-note.com/img/1647268399713-VdMGgblzUw.png?width=1200)
![](https://assets.st-note.com/img/1647268503971-3rwRDYKAmr.png)
![](https://assets.st-note.com/img/1647268572054-CjwEWYGpJX.png?width=1200)
![](https://assets.st-note.com/img/1647268693387-NnJ7kU2mDz.png?width=1200)
GoogleHomeに話しかけてみよう
以上で設定は終了です。さっそくGoogleHomeに
OK Google
クラスに「こんにちは」を書き込んで
と話しかけてみましょう
GoogleドライブからスプレッドシートGoogle Assistant Commandsを開く
GoogleドライブからGoogle Assistant Commandsを検索して開きましょう。開いたスプレッドシートのシート1に日付と「こんにちは」が記入されていると思います。
![](https://assets.st-note.com/img/1647269369569-CttKI84bIv.png)
スプレッドシートにGASを設定する
まず最初にスプレッドシートGoogle Assistant Commandsにシート2を追加します。
![](https://assets.st-note.com/img/1647269537022-U6q1bGM9k3.png)
次にメニューの拡張機能からApps Scriptをクリックします
![](https://assets.st-note.com/img/1647269682967-B69edySMRY.png)
Apps Script名を連絡事項にし、下記のスクリプトをApps Scriptに貼り付けます
![](https://assets.st-note.com/img/1647269905428-HiAIjxj2at.png?width=1200)
function onOpen() {
SpreadsheetApp
.getActiveSpreadsheet()
.addMenu('音声書き込み', [
{name: 'クラス一覧取得', functionName: 'classroomdata'},
{name: '書き込む', functionName: 'createAnnouncements'},
]);
}
function classroomdata(){
var now = new Date();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getSheetByName("シート2");
var response = Classroom.Courses.list({});
var courses = response.courses;
var course = "";
for (i = 0; i < courses.length; i++) {
course = courses[i];
sht.getRange(i + 1, 1).setValue(course.name);
sht.getRange(i + 1, 2).setValue(course.id);
}
}
function createAnnouncements(){
var now = new Date();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getSheetByName("シート2");
var sht1 = ss.getSheetByName("シート1");
var lastRow1 = sht1.getLastRow();
var value = sht1.getRange(lastRow1, 2).getValue()
var response = Classroom.Courses.list({});
var courses = response.courses;
var course = "";
for (i = 0; i < courses.length; i++) {
course = courses[i];
if(sht.getRange(i + 1, 3).getValue() == 1){
var data = {
"courseId" : course.id,
"text": value,
"assigneeMode": "ALL_STUDENTS",
"state": "PUBLISHED"
}
Classroom.Courses.Announcements.create(data, course.id);
}
}
}
コピーしたものを貼り付けたら保存をクリックします
![](https://assets.st-note.com/img/1647269963483-t2mWztGWx6.png?width=1200)
Classroom APIのサービスを追加する
![](https://assets.st-note.com/img/1647271867025-Ze9GilTHFl.png)
![](https://assets.st-note.com/img/1647272015193-6aiZoWANPd.png?width=1200)
スプレッドシートに作成したクラスルーム一覧を表示する
スプレッドシートに戻り、シートを再読み込みし、メニューの音声書込みから[クラス一覧取得]をクリックする。
![](https://assets.st-note.com/img/1647270929111-gp5Nlkjz8w.png)
スクリプトの実行許可をする
![](https://assets.st-note.com/img/1647271069565-wkCy3NLY1z.png?width=1200)
![](https://assets.st-note.com/img/1647271093176-kEqEztspb5.png)
![](https://assets.st-note.com/img/1647271135596-APvaxTMYXH.png)
![](https://assets.st-note.com/img/1647271175136-pHaxJuRWQB.png)
![](https://assets.st-note.com/img/1647271223139-yn550Q8GWn.png)
![](https://assets.st-note.com/img/1647270929111-gp5Nlkjz8w.png)
クラス一覧が取得できるので、クラスルームに書き込みたいC列のセルに半角で1を入力する
![](https://assets.st-note.com/img/1647271553112-PnvUSVhm7g.png)
トリガーをの設定
![](https://assets.st-note.com/img/1647272120393-iFtfPMG7bv.png)
![](https://assets.st-note.com/img/1647272206006-WjjgA0D5Ze.png?width=1200)
![](https://assets.st-note.com/img/1647272293096-25UkfivtA3.png?width=1200)
イベントの種類を変更時にして
保存をクリック
以上でGoogleホームをスプレッドシートを通してクラスルームと連携することが出来ました!
Googleホームに話しかけて、クラスルームに書込んでみよう
OK Google
クラスに「明日から中間テストです」を書き込んで
と話しかけてみましょう。クラスルームに投稿されたと思います。
詳細動画も作りました。下記のYouTUbeをご覧ください。