物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Slackのあるチャンネルの投稿を全て消すpythonコード

import time
from slackclient import SlackClient
slack_client = SlackClient('****-************-************-************-********************************')
target_channel ="channel"

def list_channels():
    channels_call = slack_client.api_call("channels.list")
    if channels_call.get('ok'):
        return channels_call['channels']
    return None

def channel_info(channel_id):
    channel_info = slack_client.api_call("channels.info", channel=channel_id)
    if channel_info:
        return channel_info['channel']
    return None

if __name__ == '__main__':
    channels = list_channels()
    if channels:
        for channel in channels:
            print(channel['name'])
            if channel['name'] != target_channel:
                continue            
            while True:
                detailed_info = channel_info(channel['id'])
                if not detailed_info['latest']:
                    break                
                message_ts = detailed_info['latest']['ts']
                slack_client.api_call("chat.delete", channel=channel['id'], ts=message_ts)
                time.sleep(1)
    else:
        print("Unable to authenticate.")

削除は出来るが、Total messagesの数は減らない。