LINE WORKS API 連絡先リストの取得

## 概要
この記事では、LINE WORKS APIを使って顧客や取引先の連絡先リストを取得する方法をご紹介します。Google Colabを利用することで、手軽にコードを実行し、連絡先リストを確認することができます。

## 使用するエンドポイント
### 連絡先リスト取得エンドポイント
```
GET https://www.worksapis.com/v1.0/contacts
```

詳しいAPI仕様は[公式ドキュメント](https://developers.worksmobile.com/jp/docs/contact-list)をご参照ください。

## Google Colabでの実行手順

### 1. Google Colabノートブックのリンク
以下のリンクからGoogle Colabノートブックを開き、コードをそのまま実行できます。

[Google Colabノートブック: LW_Contact_List.ipynb](https://colab.research.google.com/drive/1Dr_WS4CP6d2xi2Cvteau7FzI58u6LF_Q?usp=sharing)

---

### 2. コードの内容

以下は、Google Colab上で動作するPythonコードです。

```python
# 必要な変数をGoogle Colabのパラメータ形式で入力
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"  # @param {type:"string"}
START_DATETIME = "2024-12-01T00:00:00.000+09:00"  # @param {type:"string"}
END_DATETIME = "2024-12-07T23:59:59.999+09:00"  # @param {type:"string"}
SEARCH_DATE_TYPE = "CREATED_TIME"  # @param ["CREATED_TIME", "MODIFIED_TIME"] {type:"string"}
COUNT = 100  # @param {type:"integer"}

# ライブラリのインポート
import requests

# APIのエンドポイント
BASE_URL = "https://www.worksapis.com/v1.0/contacts"

# リクエストのヘッダー
headers = {
    "Authorization": f"Bearer {ACCESS_TOKEN}"
}

# クエリパラメータ
params = {
    "startDateTime": START_DATETIME,
    "endDateTime": END_DATETIME,
    "searchDateType": SEARCH_DATE_TYPE,
    "count": COUNT
}

# リクエスト送信
response = requests.get(BASE_URL, headers=headers, params=params)

# レスポンスの確認
if response.status_code == 200:
    contacts = response.json().get("contacts", [])
    print("✅ 連絡先を取得しました。")
    if not contacts:
        print("⚠️ 連絡先はありません。")
    else:
        for contact in contacts:
            contact_id = contact.get("contactId", "N/A")
            contact_name = contact.get("contactName", {})
            full_name = f"{contact_name.get('lastName', 'N/A')} {contact_name.get('firstName', 'N/A')}"
            emails = [email.get("email", "N/A") for email in contact.get("emails", [])]
            telephones = [phone.get("telephone", "N/A") for phone in contact.get("telephones", [])]
            
            print(f"連絡先ID: {contact_id}")
            print(f"氏名: {full_name}")
            print(f"メール: {', '.join(emails) if emails else 'N/A'}")
            print(f"電話番号: {', '.join(telephones) if telephones else 'N/A'}")
            print("-" * 30)
else:
    print(f"❌ 連絡先取得に失敗しました。ステータスコード: {response.status_code}")
    print(response.text)
```

### 3. 実行結果の例

実行すると、以下のような結果が表示されます。

```
✅ 連絡先を取得しました。
連絡先ID: contact1-xxxx-xxxx-xxxx-xxxxxxxxxx
氏名: 山田 太郎
メール: taro.yamada@example.com
電話番号: 090-1234-5678
------------------------------
連絡先ID: contact2-xxxx-xxxx-xxxx-xxxxxxxxxx
氏名: 鈴木 花子
メール: hanako.suzuki@example.com
電話番号: 080-9876-5432
------------------------------
```

## パラメータ説明
| パラメータ          | 説明                                                             |
|---------------------|------------------------------------------------------------------|
| `ACCESS_TOKEN`      | APIアクセス用のアクセストークン。                                 |
| `START_DATETIME`    | 取得対象の開始日時 (ISO 8601形式)。                              |
| `END_DATETIME`      | 取得対象の終了日時 (ISO 8601形式)。                              |
| `SEARCH_DATE_TYPE`  | 日付フィルターの種類。`CREATED_TIME`または`MODIFIED_TIME`を指定。 |
| `COUNT`             | 取得する連絡先の最大件数 (1～500)。                              |

## まとめ
この記事では、LINE WORKS APIを使用して連絡先リストを取得する方法を紹介しました。Google Colabを利用することで、簡単に実行できる環境を提供しています。ぜひ試してみてください！

この記事が役に立ったら「いいね」やコメントをお願いします！質問や不明点があればお気軽にコメントしてください。