2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

API Lab for LINE WORKSAdvent Calendar 2024

Day 20

LINE WORKS 監査ログのダウンロード

Last updated at Posted at 2024-12-19

LINE WORKS 監査ログのダウンロード

LINE WORKSの監査ログを簡単にダウンロードできるPythonサンプルコードを紹介します。このツールはGoogle Colab上で動作し、手軽に試すことが可能です。監査ログの取得はセキュリティや運用の観点から重要で、このサンプルを活用することで効率的に管理できます。

サンプルコードについて

このサンプルコードは、以下の機能を提供します:

  • 監査ログのダウンロードURLの取得:LINE WORKS APIを使用して監査ログのダウンロードURLを取得します。
  • CSV形式でログを保存:取得した監査ログをローカルにCSV形式で保存します。
  • Google Colab対応:環境構築が不要で、すぐに試せます。

ノートブックは以下のリンクから利用できます:
LW_Audit_Log_Download_Tool.ipynb

サンプルコードの使い方

1. Google Colabで実行

  1. 上記のリンクをクリックしてGoogle Colabを開きます。
  2. 必要なパラメータ(アクセストークンやログ期間など)を入力します。
  3. 実行ボタンをクリックして監査ログをダウンロードします。

2. サンプルコードの内容

以下はコードの主要な部分です。

必要なライブラリのインストール

Google Colabで実行する際には、以下のコマンドでライブラリをインストールします。

!pip install requests

設定パラメータの入力

監査ログを取得するために必要なパラメータを入力します。

ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"  # LINE WORKS監査ログAPI用アクセストークン
SERVICE = "message"  # 取得対象のサービス (例: message)
START_TIME = "2024-12-01T00:00:00%2B09:00"  # 開始日時 (URLエンコード済み)
END_TIME = "2024-12-19T23:59:59%2B09:00"  # 終了日時 (URLエンコード済み)
LANGUAGE = "ja_JP"  # 言語設定
OUTPUT_FILE = "audit_logs.csv"  # 保存ファイル名

ダウンロードURLの取得

以下の関数で監査ログのダウンロードURLを取得します。

def get_audit_logs_url():
    headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
    params = {"service": SERVICE, "startTime": START_TIME, "endTime": END_TIME, "language": LANGUAGE}
    response = requests.get(BASE_URL, headers=headers, params=params, allow_redirects=False)
    if response.status_code == 302:
        return response.headers.get("Location")
    else:
        raise Exception(f"ダウンロードURL取得失敗: {response.status_code}")

監査ログのダウンロード

取得したURLを使用してCSVファイルを保存します。

def download_audit_logs(download_url, output_file):
    headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
    response = requests.get(download_url, headers=headers, stream=True)
    with open(output_file, "wb") as file:
        for chunk in response.iter_content(chunk_size=1024):
            file.write(chunk)
    print(f"✅ 監査ログを{output_file}に保存しました。")

実行結果

Google Colab上で実行すると、以下のようにログが保存されます。

  1. ダウンロードURLが取得されるとコンソールに表示されます。
  2. 監査ログが指定したファイル名でローカルに保存されます。

注意事項

  1. アクセストークンの有効期限:アクセストークンが期限切れの場合、新しいトークンを取得してください。
  2. 取得期間:指定できる期間は最大31日です。
  3. 認証エラー:正しいアクセストークンを設定してください。

まとめ

このサンプルコードを使用すると、LINE WORKSの監査ログを効率よく取得できます。Google Colabを利用することで、簡単に試すことが可能です。
ぜひ業務の効率化にお役立てください。

フィードバックや質問があれば、コメント欄でお知らせください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?