LINE WORKS Bot API を活用したトークルーム操作
LINE WORKS Bot API を使用して以下の操作を行う方法を解説します:
- トークルームの作成
- トークルームへのメッセージ送信
- トークルーム情報の取得
- トークルームから Bot の退室
この記事では、Pythonの実行可能なサンプルコードを提供し、それらをGoogle Colab上で簡単に試すことができます。
Google Colab のノートブック
こちらのリンクから、この記事で紹介するサンプルコードをすぐに試せます。
LINE WORKS Bot API - トークルーム操作 (Google Colab)
必要な準備
以下の準備を行ってください:
-
Access Token
bot
スコープが必要です。 -
Bot ID
LINE WORKS の Bot ID を確認してください。 -
ユーザー情報
トークルームに追加するメンバーの ID を準備してください。 -
Google Colab アクセス
Google Colab にアクセス可能な環境を用意してください。
サンプルコード
以下のコードは、Google Colabで実行可能な形式で記述されています。セルごとに実行してください。
セル1: 初期設定
# 必要なライブラリのインストール
!pip install requests
# ライブラリのインポート
import requests
import json
import ast # 文字列をリストに変換するために使用
# 設定変数
ACCESS_TOKEN = "your_access_token" # @param {type:"string"}
BOT_ID = 1234567 # @param {type:"integer"}
API_SERVER = "https://www.worksapis.com"
# USERS を文字列として受け取り、リストに変換
USERS = "[\"user1@example.com\", \"user2@example.com\"]" # @param {type:"string"}
try:
USERS_LIST = ast.literal_eval(USERS) # 文字列をリストに変換
if not isinstance(USERS_LIST, list):
raise ValueError("USERS はリスト形式で指定してください。")
except Exception as e:
print(f"❌ USERS の形式が正しくありません: {e}")
USERS_LIST = []
# トークルーム名の設定
ROOM_TITLE = "Sample Talk Room" # @param {type:"string"}
セル2: トークルームの作成
# トークルームの作成
url = f"{API_SERVER}/v1.0/bots/{BOT_ID}/channels"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json"
}
payload = {
"members": USERS_LIST, # USERS_LIST をそのまま配列で使用
"title": ROOM_TITLE # トークルーム名を設定
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 201:
print("✅ トークルームが作成されました!")
print(response.json())
channel_id = response.json().get("channelId") # チャンネルIDを保存
else:
print("❌ トークルームの作成に失敗しました。")
print(f"Status Code: {response.status_code}")
print(f"Response: {response.text}")
channel_id = None
セル3: トークルームへのメッセージ送信
# トークルームにメッセージを送信
if channel_id:
api_url = f"{API_SERVER}/v1.0/bots/{BOT_ID}/channels/{channel_id}/messages"
message_content = {
"content": {
"type": "text",
"text": "こんにちは、これはテストメッセージです!"
}
}
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
"Content-Type": "application/json"
}
response = requests.post(api_url, headers=headers, json=message_content)
if response.status_code == 201:
print("✅ メッセージが正常に送信されました!")
else:
print("❌ メッセージの送信に失敗しました。")
print(f"Status Code: {response.status_code}")
print(f"Response: {response.text}")
else:
print("トークルームIDがありません。メッセージを送信できませんでした。")
セル4: トークルーム情報の取得
# トークルーム情報の取得
if channel_id:
url = f"{API_SERVER}/v1.0/bots/{BOT_ID}/channels/{channel_id}"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print("✅ トークルーム情報を取得しました!")
print(json.dumps(response.json(), indent=4, ensure_ascii=False))
else:
print("❌ トークルーム情報の取得に失敗しました。")
print(f"Status Code: {response.status_code}")
print(f"Response: {response.text}")
else:
print("トークルームIDがありません。トークルーム情報を取得できませんでした。")
セル5: Bot の退室
# トークルームからの退室
if channel_id:
url = f"{API_SERVER}/v1.0/bots/{BOT_ID}/channels/{channel_id}"
headers = {
"Authorization": f"Bearer {ACCESS_TOKEN}",
}
response = requests.delete(url, headers=headers)
if response.status_code == 204:
print("✅ Bot がトークルームから退室しました!")
else:
print("❌ Bot の退室に失敗しました。")
print(f"Status Code: {response.status_code}")
print(f"Response: {response.text}")
else:
print("トークルームIDがありません。Bot を退室させることができませんでした。")
参照先
この記事に関連する LINE WORKS Bot API の詳細な仕様については、以下の公式ドキュメントを参照してください:
注意事項
-
Botの設定
- LINE WORKS Developer Console で Bot を複数人トークルームに参加可能な設定にしてください。
-
トークルーム名 (
ROOM_TITLE
) の設定- トークルーム名は最大 1000 文字まで指定可能です。
以上で、LINE WORKS Bot APIを使ったトークルーム操作を試す準備が整いました!質問やフィードバックがあればコメントでお知らせください。