Google Driveフォルダー内のファイルを取得し、Chatworkにファイル名とファイルURLを通知する方法

特定のフォルダーにファイルが保存されたときに、通知がほしいなと思ったのでその仕組みをつくりました。

今から記載するコードとトリガーでできることは、Google Drive内に新規ファイル(本当は15分ごとに発火するトリガーを設定して15分以内に特定のフォルダーにファイル)が追加されたときにチャットワークに以下のような通知を送るということができます。

以下がGASのコードです。

const token = "Chatwork APIトークンを発行して貼り付けてね";
const room_id = Chatworkのroom_idを張り付けてね;

function myFunction() {

  var folder = DriveApp.getFolderById('GoogleDriveのフォルダーのidを張り付けてね');

  // PDFファイルのファイル情報を取得
  var files = folder.getFilesByType(MimeType.PDF);

  while(files.hasNext()){

    //console.log(files);

    var file = files.next();
    var create_date = file.getDateCreated();
    var time_diff = (Date.now() - create_date.getTime()) / (60 * 1000);

    console.log(Date.now());

    // 15分以内に作成されたファイルか
    if(time_diff < 15){
      var body = '';
      body += '[info][title]ファイルが追加されました[/title]';
      body += 'ファイル名: ' + file.getName() + '\n';
      body += 'URL: ' + file.getUrl();
      body += '[/info]';
      // Chatworkへ通知
      sendMessage(body);
    }
  }
}

function sendMessage(body) {
  var client = ChatWorkClient.factory({token: token});
  client.sendMessage({
    room_id: room_id,
    body: body
  });
}

上記のコードで

「 “Chatwork APIトークンを発行して貼り付けてね” 」

「 Chatworkのroom_idを張り付けてね 」

「 ‘GoogleDriveのフォルダーのidを張り付けてね’ 」

の箇所は適宜ご自身のものを張り付けてください。

Chatwork APIトークンを発行の方法をまだ知らない方やChatworkのroom_idってどれと思った方は過去の記事に内に記載しているの参考にしてみてください。

GoogleDriveのフォルダーのidがってどれのことだ?と思った方はこちらの記事を参考にしてみてください。

上記記事の中で、



 // PDFファイルのファイル情報を取得
  var files = folder.getFilesByType(MimeType.PDF);

と記載しており、フォルダー内のpdfを取得するようにしてますので、フォルダー内のどのタイプも取得する場合は、

var files = folder.getFiles();

に変更すれば、pdfに限らずフォルダー内のファイルを取得できるかと思います(試してないですが………)

それから、トリガーは以下のように設定します。

これで15分おきに、15分以内にフォルダー内に新規追加されたpdfがあれば、チャットワークに通知してくれる仕組みが出来上がります。

15分ではなくもっと早めに設定した方は、トリガーの「時間の間隔選択」を早めるなどして適宜調整してください。

  • 関連記事
  • おすすめ記事
  • 特集記事

コメント

この記事へのコメントはありません。

PAGE TOP