0
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?

LINE WORKS の掲示板の投稿の既読/未読リストを API で取得できるようになりました。

この記事では、Google Colab で Python を使用してAPIから掲示板の既読メンバーリストを取得し、既読者と未読者を分けて表示してみます。

使用するライブラリのインストール

まず、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 で掲示板の既読メンバーリストを取得し、既読者と未読者を分けて表示する方法を紹介しました。

0
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
0
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?