最近の複合機はFAXを受信した時にGoogleドライブにPDFファイルとして共有する機能があるらしい。

この機能があれば出先であってもスマホ等があれば出先でもPDFを確認できるようになるため、

帰社するまでFAXの内容を確認できないとか、

社内にいる人がFAXの内容をスキャンしてメールで送信という手間が省ける上、

営業FAX等の受信で無駄に紙を使用するということもなくなる。


ただし、この機能はGoogleドライブで共有だけで、

FAXを受信したことをリアルタイムで把握したいので、


チャットワーク(ChatWork) | ビジネスが加速するクラウド会議室


Google Apps ScriptでチャットワークにFAX受信の通知を送信する仕組みを作ってみた。


はじめにGoogleドライブのマイドライブ(Googleドライブを開いた時に最初に表示されるページ)で下記のコードを記載したスクリプトファイルを追加する


function myFunction() {
  //マイドライブ内にPDFファイルがあるか?を調べる。パフォーマンスを考慮して常に1ファイルのみ通知とする
  var files = DriveApp.getFiles();
  var pdfFileName;
  while (files.hasNext()) {
   var file = files.next();
   if(file.getName().indexOf(".pdf") > 0){
     pdfFileName = file;
     break;
   }
  }
  
  //マイドライブ内にPDFがなければここで終了
  if(!pdfFileName) return;
  
  //PDFファイルを指定のフォルダ(今回はpdfフォルダ)に移動する
  var pdffile = DriveApp.getFilesByName(pdfFileName).next();
  var destFolder = DriveApp.getFoldersByName("pdf").next();
  var sourceFolder = pdffile.getParents().next();
  destFolder.addFile(pdffile);
  sourceFolder.removeFile(pdffile);
  
  //チャットワークで通知したいメッセージ
  var mes = "FAXを受信しました。\nファイル名:" + pdfFileName + "\nGoogleドライブ内のpdfフォルダをご確認ください。";

  //移動した先のPDFファイルを確認して、チャットワークに閲覧用のURLを送信する
  var api_token   = 'xxx'; // チャットワークAPIのAPIトークン
  var room_id     = 0;     // 送信先のチャットのid
  var cw = ChatWorkClient.factory({token: api_token});
  cw.sendMessage({room_id: room_id, body: mes});
}

※スクリプトの作成方法やこのコードの最後の方にあるチャットワークAPIのAPIトークンとチャットのIDは下記の記事をご確認ください。

Google Apps Scriptからチャットワークに投稿してみる


今回のコードはマイドライブ内で共有されたPDFファイルを、

一旦指定のフォルダにファイルを移動させた後、

今回受信したPDFのファイル名をチャットワークで通知する

というスクリプトになっている。


マイドライブから指定のフォルダにファイルを移動する理由は、

マイドライブ内がFAX受信時に共有ファイルで埋め尽くされて操作性が落ちることの防止のため。


マイドライブにsample.pdfというファイルをアップロードした後、

今回作成したスクリプトを実行してみる。


実行後に指定のフォルダ(今回はpdfフォルダ)を開いてみると、



マイドライブ内にあったPDFファイルが指定のフォルダに移動されていて、



チャットワークの方でもPDFの受信の通知が届いていた。


後は今回作成したスクリプトファイルを5分間隔で実行されるように設定して、

複合機の方でFAX受信の際はGoogleドライブと連携するという設定を行えば、

今回の出先でPDFファイルを確認する仕組みは完成する。