1
1

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 23

LINE WORKS API 基本カレンダーの予定リストの取得

Posted at

このドキュメントでは、Python を使用して LINE WORKS のカレンダー予定リストを取得する方法について説明します。Google Colab を使用して、すぐに試すことも可能です。

必要な情報

LINE WORKS のカレンダー API を使用するには、以下の情報が必要です。

  1. アクセストークン
  2. ユーザー ID (もしくは "me")

これらの情報は、LINE WORKS の管理者ポータルで確認または発行することができます。

Google Colab で試す

このスクリプトは、Google Colab で簡単に試すことができます。

以下のリンクをクリックして、Google Colab でノートブックを開き、実行してください。

Google Colab: LW_Calendar_Events_List.ipynb

スクリプトの説明

以下のスクリプトは、指定した期間のカレンダー予定を取得します。繰り返し予定も対応しています。

# 必要な変数を Google Colab のパラメータ形式で入力
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"  # @param {type:"string"}
USER_ID = "me"  # @param {type:"string"}
FROM_DATETIME = "2024-12-22T00:00:00+09:00"  # @param {type:"string"} 開始日時
UNTIL_DATETIME = "2024-12-28T23:59:59+09:00"  # @param {type:"string"} 終了日時

import requests

BASE_URL = f"https://www.worksapis.com/v1.0/users/{USER_ID}/calendar/events"

def get_calendar_events():
    headers = {
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json"
    }
    params = {
        "fromDateTime": FROM_DATETIME,
        "untilDateTime": UNTIL_DATETIME
    }

    print("⏳ 予定リストを取得中...")
    response = requests.get(BASE_URL, headers=headers, params=params)

    if response.status_code == 200:
        print("✅ 予定リストを取得しました。")
        events = response.json().get("events", [])
        if not events:
            print("❌ 予定が見つかりませんでした。")
        else:
            for event in events:
                for event_component in event.get("eventComponents", []):
                    print("📅 イベント情報")
                    print(f"イベントID: {event_component.get('eventId', 'N/A')}")
                    print(f"タイトル: {event_component.get('summary', 'N/A')}")
                    print(f"開始: {event_component.get('start', {}).get('dateTime', 'N/A')}")
                    print(f"終了: {event_component.get('end', {}).get('dateTime', 'N/A')}")
                    recurrence = event_component.get("recurrence", [])
                    if recurrence:
                        print(f"繰り返し: {', '.join(recurrence)}")
                    else:
                        print("繰り返しなし")
                    print("-" * 30)
    else:
        print(f"❌ 予定リストの取得に失敗しました: {response.status_code}")
        print(response.text)

# 実行
get_calendar_events()

注意点

  • 必要な情報 (アクセストークンなど) を正確に設定してください。

おわりに

LINE WORKS のカレンダー API を活用することで、スケジュールの自動化や情報取得を効率化できます。ぜひ試してみてください!

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?