Google Apps Scriptは超便利

こんにちは、サイオステクノロジー技術部 武井です。今回は、Google Apps Scriptのことを話したいと思います。

Google Apps Scriptとは?

G Suiteで提供しているサービス(メール、カレンダー、ドライブ等)の操作が可能なサーバーサイドプログラミング言語です。G Suiteアカウントを持っている人であれば、どなたでもご利用出来ます。しかも、サーバーサイドで動くので特別な環境がいりません。具体的には以下のようなことができます。

  • 毎日決まった時間にGoogleカレンダーの今日一日の予定をメールで送信する
  • スプレッドシートの特定のセルに変更があったら、Slackで通知
  • 簡単なRest APIを作成する

使ってみよう

実際に使ってみましょう。Googleカレンダーの今日一日の予定をメールで送信するスクリプトを作成してみます。

下記のURLにアクセスして下さい。

https://script.google.com/

 

初めてアクセスする場合には以下の画面が表示されます。「ダッシュボードを表示」をクリックして下さい。

Screen Shot 2018-03-14 at 21.41.29

 

「新規スクリプト」をクリックして下さい。

Screen Shot 2018-03-14 at 23.48.36

 

プロジェクトの画面が表示されます。

Screen Shot 2018-03-14 at 23.49.45

 

先程の「コード.gs」のエリアに以下のソースコードを貼り付けて下さい。指定したアカウントのGoogleカレンダーの今日一日の予定をメールで送信するスクリプトです。

function myFunction() {
// カレンダーを取得したい人のメールアドレスを指定する
var cal = CalendarApp.getCalendarById('exapmle@sios.com');
// 今日の日付の00:00:00時点のDateを生成する
var startDate = new Date();
startDate.setHours(0);
startDate.setMinutes(0);
startDate.setSeconds(0);
// 今日の日付の23:59:59時点のDateを生成する
var endDate=new Date(startDate);
endDate.setHours(23);
endDate.setMinutes(59);
endDate.setSeconds(59);
// 今日一日のカレンダーを取得する
var myEvents=cal.getEvents(startDate,endDate);
// 今日一日のカレンダーをメールで送る
var body = '';
for each(var evt in myEvents){
body += 
evt.getStartTime()+" 〜 "+
evt.getEndTime()+":"+
evt.getTitle() + "\n";
}
MailApp.sendEmail('example@sios.com', '今日一日の予定', body);
}

「保存」をクリックして下さい。
Screen Shot 2018-03-14 at 23.52.07

 

プロジェクト名を入力して「OK」をクリックして下さい。これで保存されました。

Screen Shot 2018-03-14 at 21.43.31

 

では、実行してみます。画面上部の再生ボタンをクリックして下さい。

Screen Shot 2018-03-15 at 0.03.38

 

カレンダーやメールなど、スクリプトの中でアクセスするサービスへのアクセス許可を求める画面が表示されます。「許可を確認」をクリックして下さい。

Screen Shot 2018-03-14 at 21.44.00

 

スクリプトを実行するアカウントをクリックして下さい。

Screen Shot 2018-03-15 at 0.05.18

 

サービスの内容を確認して、「許可」をクリックして下さい。

Screen Shot 2018-03-15 at 0.06.23

 

これでスクリプトが実行されました。今日一日の予定がメールで送信されているはずです。メールを確認してみます。

Screen Shot 2018-03-15 at 0.07.27

できたー(`・ω・´)シャキーン

お手軽にこんなことが出来てしまうGoogle Apps Script超便利ですね。

Be the first to comment

コメント投稿

Your email address will not be published.


*