どうも。つじけ(tsujikenzo)です。このシリーズでは 「スマホカメラで位置・ユーザー・時刻情報を送信するアプリ」 について全3回でお送りします。今日は1回目です。
やりたいこと
みなさんが働く環境は、オフィス、自宅、倉庫、加工場などさまざまだと思います。 「誰が、いつ、どこにいる」 という情報をオンタイムで管理したいことも多いです。
また、現在地をメンバーに共有することで、効率的な人員配置をすることも可能です。「とあるフロアーにメンバーが集まり過ぎているので、入場制限を掛ける」や「玄関ロビーを通過したことを情シスに通知する」など、さまざまな活用方法があります。
そこで、今回は 「QRコードをスマホで撮影すると、位置・ユーザー・時刻情報を管理者にメールで送信する」 アプリを作成します。
※注意点
このツールでは「必要最小限の情報を送信する」ことに特化していますので、 「どんな状態である」 や 「個数はいくつある」 などの、動的な情報を送信することができません。
そのかわり、「スマホカメラで撮影するだけいい。」を実現しています。
用意するもの
- Googleアカウント
- Google Apps Script(以降、GAS)
- Gmail
以上です。さっそく作ってみましょう。
GASを準備する
まず、Googleドライブを開きます。開いたら、左上の [+新規] をクリックします。
メニューリストの中から[その他]をクリックして、 [Google Apps Script] をクリックします。
左上のプロジェクト名をクリックすると、プロジェクト名を変更できます。名前はなんでもかまいませんが、今回は 「はじめてのウェブアプリ」 としました。
ユーザー情報を取得する
GASを実行したユーザーのメールアドレス(Gmailアカウント)を取得するコードはこちらです。
Session.getActiveUser().getEmail();
なので、戻り値を変数に代入しておきます。
const user = Session.getActiveUser().getEmail();
現在時刻を取得する
現在時刻を日本語表記で取得するコードはこちらです。
const d = new Date();
Utilities.formatDate(d, 'JST', 'YYYY月MM月dd日HH時mm分ss秒');
こちらも変数に代入しておきましょう。
const now = Utilities.formatDate(d, 'JST', 'YYYY月MM月dd日HH時mm分ss秒');
現在地を取得する
現在地はURLから取得します。後ほど詳しく説明しますが、このようなコードで取得できます。
e.parameter.locate;
こちらも変数に代入しておきましょう。
const locate = e.parameter.locate;
必要な情報が揃いましたので、スプレッドシートで集計するなど、さまざまな処理を行うことができます。今回はGmailを自動で送信するコードを書きます。
Gmailの下書きを作成する
「Gmailで送信するGAS」を書く際は、テストとして 「下書きを作成する」 GASを書くのがセオリーです。テスト運用をしてみて、問題がなければ後で メソッド名を変更 します。
GmailApp.createDraft(recipient, subject, body);
↓
GmailApp.sendEmail(recipient, subject, body)
Gmailの下書きを作成するために必要な項目は3つです。
– recipient ・・・送信先メールアドレス
– subject ・・・・件名
– body ・・・・本文
この3つを用意するだけです。ただし、必ず 「文字列型」 なので注意しましょう。
関数を用意する
関数名は「createDraftFromWebApp()」としました。
function createDraftFromWebApp(){
//ここに処理を書く
}
変数を用意する
それぞれ変数を準備します。受信したいメールアドレスは、管理者のメールアドレスなどを設定します。
const recipient = 'admin@hogehoge.com';
件名は自由に設定できます。なるべくわかりやすい名前がいいでしょう。
const subject = '[ウェブアプリ]ユーザーが「現在地」を報告しました';
本文も自由に設定できます。テンプレート文字列を活用して整形しましょう。
const body = `
タイトル:${subject}
ユーザーアカウント:${user}
場所:${locate}
時刻:${now}
`;
関数に書き込む
実際に、画面に書き込んだ状態はこのようになります。
まとめ
以上で、「スマホカメラで位置・ユーザー・時刻情報を送信するアプリ」として、GASの下準備をしました。
次回は、ウェブアプリとして公開する準備をします。お楽しみに。
このシリーズの目次
- [業務効率化][GAS]スマホカメラで位置・ユーザー・時刻情報を送信するアプリーロール1ー
- [業務効率化][GAS]スマホカメラで位置・ユーザー・時刻情報を送信するアプリーロール2ー
- [業務効率化][GAS]スマホカメラで位置・ユーザー・時刻情報を送信するアプリーロール3ー