IT

【ソースコード付き】GoogleDriveでファイルが追加・更新されたらメールで通知する

 

Advertisements

概要

google driveでファイルの変更(追加や削除、更新を監視、変更があった場合に、
指定した宛先にメールで通知するシステムです。

 

開発の背景

もともとは、遠方の家族と写真を共有するために開発しました。
DropBoxではデフォルトで通知が行えるので、これが使えればよかったのですが。
残念ながら、デバイスというかOSの機能で通知を行うために、
それに対応するPCなりデバイスを持っていることが必要となります。

Google Driveなら、

  • アカウントさえ持っていればファイルの共有は簡単
  • Google App Scriptなら サーバ不要
  • メール通知なら、ガラケーへも通知できる

という理由で、選びました。
Googleってインフラを抑えちゃってるから、やっぱり強いですよね。

 

想定している使われ方

  • 仲間内で、共同で資料共有、編集などを行うとき
  • 遠方の両親に、孫の写真を共有するとき

いちいち、編集や追加するたびに、連絡するのもかったるいですからね。
ITの知識を多少かじっているなら、これくらいサクッと作っておきたいものです。

 

1.1 前提条件

  • google accountを持っていること
  • google documentが使える状態であること

 

Advertisements

1.2 事前に準備するもの

以下のものが必要となります。
1つずつ、説明していきます。

#作成するもの説明
1Google Driveのフォルダ共有する写真などのファイルを配置するフォルダ
2Google DriveのフォルダのID#1のフォルダのID
3スプレッドシートフォルダの更新情報を保存するためのスプレッドシート
4スプレッドシートのID#3のスプレッドシートのID
5スプレッドシートのシート名スプレッドシートの中の、実際に情報を記録するシート名

 

#1 Google Driveのフォルダ

何はともあれ、監視対象となるフォルダがないと話になりません。
フォルダを作成しましょう。名前は何でもよいです。

 

#2 Google DriveのフォルダID

対象とするGoogle DriveフォルダのIDが必要です。
これは、ブラウザでアクセスして、URLを見れば分かります。

 

塗りつぶしていますが、選択状態にある、青く反転させられている部分が、フォルダのIDになります。
フォルダーの場合、/folders/ の後に続いている、半角英数字の羅列です。

 

#3 スプレッドシート

スプレッドシートを1つ作成してください。
ファイル名、場所のどちらも、適当でかまいません。

 

ここでは、folderlist という名前のスプレッドシートを用意しました。
さらに、中を以下のように編集します。

 

要するに、情報を一覧にする際の、ヘッダーを作成しています。

 

#4 スプレッドシートのID

Google DriveフォルダのIDと同様、ブラウザでアクセスして、URLを見れば分かります。

 

塗りつぶしていますが、選択状態にある、青く反転させられている部分が、フォルダのIDになります。
スプレッドシートの場合、spreadsheets/d の後に続いている、半角英数字の羅列です。

 

#5 スプレッドシートのシート名

エクセルのシート名と同じです。

 

1.3 Google App Scriptを用意する

それでは、Google App Scriptを実装して、動かしてみます。
以下のような感じで、スクリプトを書いていきます。

 

実際のコード全文は、以下の通りです。

 

2. 動かしてみる!

 

2.1 コードの修正

先頭部分の、以下の内容は、実行環境に応じて修正してください。

 

2.2 実行!

以下のようにして、updateCheck を実行させて下さい。

 

特に問題がなければ、以下のようなメールが届いているはずです。

 

3. 自動実行

それでは、最後にこれを自動で実行させるための設定を行いましょう。
これを設定しておけば、Google Driveにファイルが追加、更新、削除があった場合に、
自動でこれを検知して、その変更内容とともにメールを送ってくれます。

 

よりリアルタイムに更新情報が欲しい場合は、「分タイマー」 に設定しておくとよいでしょう。

 

おわりに

いかがでしたか?
自前でサーバを立てなくても、こういうことができちゃうのは、便利ですよね。

それでは。

 

Advertisements

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

one + 11 =