LINE WORKS の掲示板の投稿の既読/未読リストを API で取得できるようになりました。
この記事では、Google Colab で Python を使用してAPIから掲示板の既読メンバーリストを取得し、既読者と未読者を分けて表示してみます。
やってみました。#LINEWORKS https://t.co/vUVehLNLIy pic.twitter.com/iSmxYDL8dq
— iwaohig (@iwaohig) June 18, 2024
使用するライブラリのインストール
まず、Google Colabで必要なライブラリをインストールします。
!pip install requests pandas
スクリプトの実装
セル1: パラメータ設定
以下のセルで必要なパラメータを設定します。自身の掲示板ID、投稿ID、およびアクセストークンを設定してください。
# 必要なパラメータを設定
board_id = 100 # 掲示板ID
post_id = 1 # 投稿ID
token = "YOUR_ACCESS_TOKEN" # 取得したアクセストークン
セル2: データ取得および表示
次に、データを取得し、既読者と未読者を分けて表示するスクリプトを以下のセルに記述します。
import requests
import pandas as pd
def get_all_readers(board_id, post_id, token):
url = f"https://www.worksapis.com/v1.0/boards/{board_id}/posts/{post_id}/readers"
headers = {
'Authorization': f'Bearer {token}'
}
readers = []
next_cursor = None
while True:
params = {}
if next_cursor:
params['cursor'] = next_cursor
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
readers.extend(data['readers'])
next_cursor = data.get('responseMetaData', {}).get('nextCursor')
if not next_cursor:
break
else:
print(f"Error: {response.status_code}")
print(response.json())
response.raise_for_status()
return readers
# 既読メンバーリストを取得
try:
readers_data = get_all_readers(board_id, post_id, token)
# データをPandasデータフレームに変換
readers_df = pd.DataFrame(readers_data)
# 既読者と未読者に分ける
read_df = readers_df[readers_df['isRead'] == True]
unread_df = readers_df[readers_df['isRead'] == False]
# 既読人数と未読人数を表示
read_count = len(read_df)
unread_count = len(unread_df)
print(f"既読人数: {read_count}")
print(f"未読人数: {unread_count}")
# データフレームを表示
print("\n既読者:")
print(read_df)
print("\n未読者:")
print(unread_df)
except requests.exceptions.HTTPError as err:
print(f"HTTP error occurred: {err}")
except Exception as err:
print(f"Other error occurred: {err}")
説明
ライブラリのインポート:
- requestsとpandasライブラリをインポートします
get_all_readers関数の定義:
- 指定された掲示板IDと投稿ID、およびアクセストークンを使ってAPIリクエストを送信し、既読メンバーリストを取得します
- カーソルを使用して全てのデータを取得するまでループを続けます
データの取得と表示:
- 取得したデータをPandasデータフレームに変換します
- 既読者と未読者にデータを分け、それぞれの人数を表示します
- 既読者と未読者のデータフレームを表示します
まとめ
この記事では、Google Colab を使用して LINE WORKS API で掲示板の既読メンバーリストを取得し、既読者と未読者を分けて表示する方法を紹介しました。