ついつい忘れてしまう監査ログの保存を自動化
LINE WORKSは監査を目的としたトーク履歴等の保存が可能ですが、
閲覧期間は180日までとなっています。
CSVデータとしてローカルにDLする事も可能ですが、
手動だとついつい忘れてしまいがちです。
そこで毎月1日に監査ログAPIを定期実行し、CSVファイルをGoogle Driveへ自動保存
およびBotでCSVファイルをお届けしてくれるツール(GAS)をつくりました。
LINE WORKSの監査ログAPIは、過去最大31日間までのログを取得可能です。
そのため 前月1日00:00:00 ~ 前月最終日の23:59:59までのログを毎月1日に取得する実装にしました。
実行イメージ
毎月1日になると、Botがログファイルと保存先パスを届けてくれる
保存先パスは以下のような感じ
※カスタマイズによりLINE WORKSのDriveや共有フォルダへ置くことも可能ですが
ひとまず今回はGoogle Driveの指定フォルダへ自動保存にしました
必要なもの
- Googleアカウント(無償でもOK)
- LINE WORKS Developers Consoleへのアクセス権限を持つID
- LINE WORKS 便利ツール
事前準備
1. LINE WORKS便利ツールの準備
以下の手順に従い、便利ツールの事前準備をします
便利ツールの準備ができたら、シートの「Audit」を開き、必要事項を入力します
2. トリガーの設定
毎月1日にプログラムが定期実行されるように、
GASのトリガーを設定していきます。
Googleシートの「拡張機能」メニューから「Apps Script」を開きます
左側のメニューアイコンから、トリガーを選択します

以下のとおりトリガーを設定します
実行する関数を選択:getAudit
実行するデプロイを選択:Head
イベントのソースを選択:時間主導型
時間ベースのトリガータイプを選択:月ベースのタイマー
日を選択:1日
時刻を選択:午前0時~1時
エラー通知:任意
以上で設定完了です。
動作テスト
毎月1日にならないとログは取得できないですが、
ここまで設定がちゃんとできたか検証だけしてみましょう。
ファイル:audit.gs を選択して、getAudit を 実行してみてください。
ファイルを開くと、データはありません。
前月の1日~本日までの期間が指定されてしまっているのでエラーになっていますが、動作テストはこれでOKです。
トリガーの設定を誤っていなければ、1日になったらちゃんとデータが入ったログが届くはずなので、気長に待ちましょう。
参考にさせていただいた記事
いつもお世話になっている @kunihiros さんのコチラの記事のおかげで、徹夜を免れました。
https://qiita.com/kunihiros/items/0a8ecc855fe721912d5f