【GAS】GoogleドライブにPDFファイルが追加されたらChatworkへ通知する


※投稿内容は個人の学習目的の記事であり、所属組織とは一切関係ありません。
 Chatwork公式ドキュメントではございませんので、自己責任でご利用ください。

こんにちわ、さかぐち(@sakaguchi_mamii)です。

今回はGoogleドライブを15分おきにチェックし、PDFファイルが追加されたらChatworkへ通知しようと思います。

Googleドライブの「フォルダID」を取得する

スクリプト内でどのフォルダのPDFファイルをチェックするのか指定するため、Googleドライブにアクセスし該当フォルダの「フォルダID」を取得します。


https://drive.google.com/drive/folders/[フォルダID]

APIトークンを取得する

Chatworkにログインし、右上のメニューから「API設定」を選択する。

パスワードを入力する。

APIトークンを取得する。

ルームIDを取得する

メッセージを送信したいグループチャットのルームIDを取得する。

グループチャットのURL末尾の数字がルームIDとなります。

ライブラリを読み込む

Chatworkへメッセージ送信は「Chatwork Client for Google Apps Script」を利用します。
「Google Apps Script」を開き、ライブラリを追加してください。

プロジェクトキー: M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT

スクリプト

const token = 'ChatworkのAPIトークン';
const room_id = 'メッセージを送りたいグループチャットのルームID';

function myFunction() {

  var folder = DriveApp.getFolderById('フォルダID');

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

  while(files.hasNext()){

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

    // 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
  });
}

トリガーの設定

スクリプトを15分おきに動かすトリガを設定します。

編集>現在のプロジェクトのトリガー を選択する。

「トリガーを追加」をクリックする。

内容を設定し「保存」をクリックする。

今回は15分おきにGoogleドライブに新規ファイルの有無を確認したいので以下を設定します。

  • 時間ベースのトリガーのタイプを選択: 分ベースのタイマー
  • 時間の間隔を選択: 15分おき

テスト

Googleドライブにファイルをアップロード。

通知がきました!

最後に

FAXで送られた内容をGoogleドライブに格納できるサービスも増えてきました。
FAXの有無をChatworkに通知し、業務効率化を図ってみはいかがでしょうか?

※投稿内容は所属組織とは一切関係ありません。