はじめに
Slackチャンネル内のメッセージを操作するのにちょうどよいpythonのライブラリがあったので紹介していきます。
用意するもの
チャンネルID(チャンネル表示時のURL末尾に表記されている)
adminユーザーで作成した必要な権限を持ったtoken
python環境
slackclient のインストール
slackclientをインストールします。pipでインストール可能です。
pip install slackclient
コード例
基本形
API Method名参照先
from slackclient import SlackClient slack_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx' client = SlackClient(slack_token) channel_id="xxxxxxxxxxx" response = client.api_call( "API Methods名", Arguments名1=Arguments内容, Arguments名2=Arguments内容 )
いくつか実際に使用したコードを紹介しておきます。
返り値responseをprintすればslackからのResponseをjson形式で見ることが出来ます。
下記コードの一番下にあるprint_jsonというdefを使えばjsonを見やすい形式で表示してくれます。
from slackclient import SlackClient slack_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx' client = SlackClient(slack_token) channel_id="xxxxxxxxxxx" def channel_list(client): response = client.api_call("channels.list") if channels['ok']: return channels['channels'] else: return response def send_message(client, channel_id, message): response = client.api_call( "chat.postMessage", channel=channel_id, text=message, ) return response def update_message(client, channel_id, message,ts): response = client.api_call( "chat.update", channel=channel_id, text=message, ts=ts ) return response def delete_message(client,channel_id,ts): response = client.api_call( "chat.delete", channel=channel_id, ts=ts ) return response def get_history(client,channel_id): response = client.api_call( "channels.history", channel=channel_id, ) return response def print_json(json_data): return print("{}".format(json.dumps(json_data,indent=4)))