34
GASハンズオン資料

[D3] GASハンズオン手順

Embed Size (px)

Citation preview

Page 1: [D3] GASハンズオン手順

GASハンズオン資料

Page 2: [D3] GASハンズオン手順

はじめに

• 本ハンズオンではGoogleアカウントを使用します。予めアカウントを作成しておいてください。

• Google Apps Scriptを利用するために、ある程度java scriptの知識が必要です。

Page 3: [D3] GASハンズオン手順

ハンズオン用ソースコード

• 今回はあまり時間がないので、予め用意したソースコードを使用します。下記URLから各セクション番号に対応したソースコードを取得してください。

• https://gist.github.com/mikesorae/3b120b5391999c5d11c6

Page 4: [D3] GASハンズオン手順

1) 初めてのGAS

Page 5: [D3] GASハンズオン手順

1-1) スプレッドシートの作成• スクリプトを作成するため、まずGoogle Driveでスプレッドシートを作成します。

Page 6: [D3] GASハンズオン手順

1-2) スクリプトの編集• メニューからスクリプトエディタを選択し、スクリプト編集画面を開きます。

Page 7: [D3] GASハンズオン手順

1-3) スクリプトの作成• まずは1_my_first_gas.jsのソースコードをGASのエディタに貼り付けてみましょう。

Page 8: [D3] GASハンズオン手順

1-4) スクリプトの実行• myFirstGasを選択し、実行ボタンをクリックするとmyFirstGasが実行されます。

ブラウザでスプレッドシートのタブを開いて、 “Hello World!”と書かれたダイアログが

表示されていれば成功です。

Page 9: [D3] GASハンズオン手順

1-5) セルの読み込み、書き込み• 同じように残り2つの関数も実行してみましょう。

• getValueFromSheetはA1セルから値を取得してダイアログに表示します。

• setValueIntoSheetはvalue変数で指定した値をA1セルに書き込みます。

Page 10: [D3] GASハンズオン手順

ポイント

• Google Apps Script実行時は実行したユーザの権限で操作が行われる。

• Google Apps Scriptが実行しようとする操作に応じた権限の許可が必要。

Page 11: [D3] GASハンズオン手順

2) Gmailの送信

Page 12: [D3] GASハンズオン手順

2-1) 準備• ひとつ目のセクションと同様に新しいSpreadSheetを作成してください。

• 2_send_mail_gas.jsのソースコードをスクリプトエディタに貼り付けてください。

• your_email_addressの部分をご自分のメールアドレスに書き換えてください。

Page 13: [D3] GASハンズオン手順

2-2) メールの送信• スクリプトエディタの関数選択欄で”sendMail”を選択してスクリプトを実行します。

• your_email_addressに設定したメールアドレスに、「メール送信テストです。」と書かれたメールが届けば送信成功です。

Page 14: [D3] GASハンズオン手順

2-3) 定型文メールの送信• sendTemplatedMailでは、シートから今日の日付の行を取得し、定型文に当てはめてメールを送信します。下記のようなシートを作成して関数を実行してみてください。

Page 15: [D3] GASハンズオン手順

2-4) 定型文メールスクリプトの注意点

• 日付は本日の日付を設定してください。

• シート名は何でも構いませんが、そのシートを開いた状態でスクリプトを実行してください。(getActiveSheetでアクティブなシートを取得しているため。)

Page 16: [D3] GASハンズオン手順

ポイント

• onOpen関数でシートを開いた時のイベントがハンドリングできる。

• sheetのaddMenu関数でSpreadSheetにメニューを追加することができる。

Page 17: [D3] GASハンズオン手順

3) Google Calendarへのイベント登録

Page 18: [D3] GASハンズオン手順

3-1) 準備• ひとつ目のセクションと同様に新しいSpreadSheetを作成してください。

• 3_google_calendar_gas.jsのソースコードをスクリプトエディタに貼り付けてください。

• your_calendar_idの部分をご自分のGoogle CalendarのIDに書き換えてください。

Page 19: [D3] GASハンズオン手順

※Google Calendar IDの取得方法• Google Calendar IDは、カレンダー設定から取得できます。

Page 20: [D3] GASハンズオン手順

4) Web APIとしての活用

Page 21: [D3] GASハンズオン手順

4-1) 準備1• ひとつ目のセクションと同様に新しいSpreadSheetを作成してください。

• 4_web_api_gas.jsのソースコードをスクリプトエディタに貼り付けてください。

• yourSheetIdの部分を、作成したGoogle Spread SheetのIDに書き換えてください。

• これまでは現在アクティブなシートからデータを取得しましたが、ここでは指定したIDのシートからデータを取得します。

Page 22: [D3] GASハンズオン手順

※SpreadSheet IDの取得方法• SpreadSheetのIDはシートのURLから取得できます。

https://docs.google.com/spreadsheets/d/1Hijsotb7Vcl3wjjauyBk4AfaqRVER_ADGGjKdA2IfJA/edit#gid=796440900

例えば上記のURLの場合、d/以降から/editまでの1Hijsotb7Vcl3wjjauyBk4AfaqRVER_ADGGjKdA2IfJA がシートのIDになります。

Page 23: [D3] GASハンズオン手順

4-2) 準備2• Web APIとしてアクセスできるようにするため、下記の操作を行ってください。

Page 24: [D3] GASハンズオン手順

4-3) サンプルAPIの実行• 続けて下記をクリックしてみてください。URLにアクセスするとdoGet()関数が実行され、サンプルのjson文字列が表示されます。

Page 25: [D3] GASハンズオン手順

4-4) ユーザ一覧データの作成• usersというシートを作成し、下記のようなデータを入れてみてください。

Page 26: [D3] GASハンズオン手順

4-5) ユーザ一覧APIの実行• doGet()関数の3行目をコメントアウトし、4行目のコメントを外し、4-3)と同様にAPIへアクセスしてみてください。usersシートに記載したデータがjson形式で表示されれば成功です。

Page 27: [D3] GASハンズオン手順

ここからは少し蛇足ですが、フォームを使ったデータの追加やイベント取得もやってみます。

Page 28: [D3] GASハンズオン手順

4-6) フォームの追加• スプレッドシートのメニューからフォームを作成します。

Page 29: [D3] GASハンズオン手順

4-7) フォームの編集• フォームに名前、誕生日、性別の入力欄を追加します。

Page 30: [D3] GASハンズオン手順

4-8) フォーム入力トリガーの設定• スクリプトエディタのメニューから現在のプロジェクトのトリガーを開き、フォーム送信時のトリガーを追加します。

• onFormSubmit -> スプレッドシートから -> フォーム送信時

Page 31: [D3] GASハンズオン手順

4-9) フォームに値を入力• フォームの編集画面から実際のフォームを表示し、データを入力します。 • 入力した値は「フォームの回答」シートに自動的に蓄積されます。

• 今回はフォームの回答シートの値を自動的にusersシートに移し替えるスクリプトを用意しています。

Page 32: [D3] GASハンズオン手順

4-10) 再度APIにアクセス• 4-5)と同じようにAPIへアクセスしてみてください。

• フォームに入力した値がjsonに追加されていれば成功です。

Page 33: [D3] GASハンズオン手順

ポイント

• doGet()、doPost()でURLアクセス時のイベントをハンドリングできる。

• onFormSubmit()でフォーム送信時のイベントをハンドリングできる。

Page 34: [D3] GASハンズオン手順

注意点

• 企業向けのGoogle Appsアカウントをご利用の場合、Web APIを匿名アクセス許可することが出来ません。GetアクセスはGoogleログイン済みのブラウザ経由のみ、Postアクセスは不可となりますのでご注意ください。