※2021年9月時点の情報です。今後の仕様変更により利用できなくなる場合もございます。
こんにちは、Chatworkのさかぐち(cw-sakaguchi)です。
「Google Apps Script」を利用して「業務効率化」する手順を不定期に更新しております。
最近、FAXとGoogleドライブを連携できるサービスが増えています。
- FAXを受信したら、GoogleドライブにPDFデータで保存してペーパレス!
- 外出時やテレワークでオフィスにいなくても、リアルタイムで確認できる!
ふと「FAXを受信したらChatworkに通知がきたらいいのに」思ったことはありませんか?
今回は「GoogleドライブにPDFファイルが追加されたらChatworkへ通知する仕組み」を作成しようと思います。
※FAXとGoogleドライブの連携手順はこの記事では紹介しておりません。
※Googleドライブの指定したフォルダに追加されるファイル数が多い場合、負荷がかかりエラーになる可能性があります。この仕組を利用する前に、Googleドライブの管理者に運用可否をご相談ください。
目次
Google Apps Scriptとは
Googleが提供しているJavaScriptベースのスクリプト言語です。
インストール作業等は不要でGoogle のサーバーで実行されます。 実行するために必要なものは以下の通りです。
- Googleアカウント
- ネットワーク環境
- ブラウザ
この記事でできること
事前に指定したGoogleドライブのフォルダへPDFファイルが追加されたら、Chatworkにメッセージを送信します。
5分おきに以下の内容のスクリプトを動かします。
- Googleドライブの指定したフォルダのファイル一覧(PDF指定)を取得
- 5分以内に登録したPDFファイルの場合、Chatworkへメッセージ送信
手順
Chatwork API Tokenの発行
Chatwork APIを利用してメッセージを送信するため、Chatwork API Tokenを取得します。
以下の手順に沿って発行してください。
取得した「API Token」はメモ帳などに保存してください(後ほど使います)
ファイル追加時の通知用のグループチャットを作成
GoogleドライブにPDFファイルが追加されたとき、通知メッセージを送信するグループチャットを作成します。
以下の手順に沿って作成してください。
作成したグループチャットの「ルームID」を取得
作成したグループチャットの「ルームID」を取得します。
以下の手順に沿って取得してください。
取得した「ルームID」はメモ帳などに保存してください(後ほど使います)
Googleドライブにフォルダ作成
Chatworkに通知メッセージを送信したいファイルを置くフォルダを作成します。
※既にフォルダが存在する場合はこの手順は不要です。
1.画面右上から「ドライブ」をクリック
2.フォルダを作成したい場所に移動後、「フォルダ」をクリック
3.新しいフォルダを作成
4.「共有」をクリックしフォルダの権限を確認
このフォルダにアクセスするメンバーの権限が設定されているかご確認ください。
Googleドライブの「フォルダID」を取得する
スクリプト内で「フォルダID」を指定する必要があるため、該当フォルダの「フォルダID」を取得します。
URLの赤枠の部分が「フォルダID」となります。
取得した「フォルダID」はメモ帳などに保存してください(後ほど使います)
Google Apps Scriptの作成
1.「Google Apps Script」をクリック
2.左上の「無題のプロジェクト」をクリックし、プロジェクトの名前を設定
3.最初から記載のある以下のコードは利用しないため削除
function myFunction() { }
4.以下のコードをコピペし、【編集対象】と書かれている部分を修正
// 【編集対象】Chatwork API Token const CW_TOKEN = 'ここにChatwork APIトークン'; // 【編集対象】通知メッセージを送るグループチャットのルームID const CW_ROOM_ID = 'ここにルームID'; // 【編集対象】対象のドライブのフォルダID const FOLDER_ID = 'ここにフォルダID'; // フォルダに新規作成されたファイルがないか確認する間隔(分指定) const CHECK_MINUTES_TIME = 5; function myFunction() { // アクセス日時を取得(比較用) const access_date = Date.now(); // フォルダ情報を取得 const folder = DriveApp.getFolderById(FOLDER_ID); // PDFファイルのファイル情報を取得 const files = folder.getFilesByType(MimeType.PDF); // 取得したファイルの数だけ繰り返す while(files.hasNext()){ var file = files.next(); var create_date = file.getDateCreated(); var time_diff = (access_date - create_date.getTime()) / (60 * 1000); // 指定された時間内に作成されたファイルか if(time_diff < CHECK_MINUTES_TIME){ // Chatwork送信用のメッセージ作成 var body = ''; body += '[info][title]ファイルが追加されました[/title]'; body += 'ファイル名: ' + file.getName() + '\n'; body += 'URL: ' + file.getUrl(); body += '[/info]'; // Chatworkへ送信 sendMessage(body); } } } // Chatworkへメッセージ送信 function sendMessage(body) { const client = ChatWorkClient.factory({token: CW_TOKEN}); client.sendMessage({ room_id: CW_ROOM_ID, body: body }); }
5.上部のメニューから「プロジェクトを保存」をクリック
ライブラリの読み込み
Chatworkへメッセージ送信はライブラリ「Chatwork Client for Google Apps Script」を利用します。
1.ライブラリの「+」をクリック
2.「スクリプトID」欄に以下のIDを入力後「検索」をクリックし、必要な設定をおこない「追加」をクリック
スクリプトID:
1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav
項目 | 内容 |
---|---|
バージョン | 最新バージョン(一番大きな数字) |
ID | 変更なし(ChatWorkClient) |
3.「ChatWorkClient」が追加されたら完了
トリガーの設定
該当のGoogleドライブのフォルダを5分おきにチェックし、新しく追加されたファイルがあったら、Chatworkへ通知するようトリガーを設定します。
1.左側のアイコンから、時計のアイコンにカーソルをあてる
2.「トリガー」をクリック
3.「トリガーを追加」をクリック
4.必要な設定をおこない、「保存」をクリック
項目 | 内容 |
---|---|
時間ベースのトリガーのタイプを選択 | 分ベースのタイマー |
時間の間隔を選択(分) | 5分おき |
※保存後にポップアップブロックが表示された場合は「許可」してください。
5.新しい画面が立ち上がるので、自分のアカウントをクリック
6.「許可」をクリックし、画面が自動で閉じるのを待つ
7.1行追加されたら完了
動作確認
GoogleドライブのフォルダにPDFファイルを追加
Chatworkに通知メッセージが送られた!
まとめ
いかがでしたでしょうか?
FAX受信時以外にも
- 社員がGoogleドライブのフォルダに領収書を登録すると、経理部へ通知が飛ぶ
- お客さまからFAXで発注書が届いたら、社内の注文チャットへ通知が飛ぶ
など、アイデア次第で複数の場面で利用できると思います!
それでは、よいGAS生活を〜
※プログラムの書き方など、具体的な実装方法については「サポート対象外」となります。