見出し画像

slack API 入門 (2) - Pythonによるメッセージ受信

slack API」で「Python」によるメッセージ受信を行う方法をまとめました。

前回

1. slackアプリの権限の設定

(1) slackのアプリサイトの「OAuth & Permissions → Scopes」で以下の権限を追加。

・channels:history : パブリックチャンネルのメッセージの取得。
・channels:read : パブリックチャンネルの基本情報の取得。
・groups:history : プライベートチャンネルのメッセージの取得。
・groups:read : プライベートチャンネルの基本情報の取得。

2. チャンネルのConversation IDの確認

slackのテスターサイトの「conversations.list」で、チャンネルの「Conversation ID」を確認します。

(1) slackのテスターサイトの「conversations.list」を開く。

(2) 「token」に「トークン」、「types」に「public_channel」または「private_channel」を指定し、「Test Method」をクリック。
ここで表示される「id」が「Conversation ID」になります。

3. conversations.historyの動作確認

conversations.history」は、メッセージを取得するAPIです。slackのテスターサイトで動作確認します。

(1) slackのテスターサイトの「conversations.history」を開く。

(2) 「token」に「トークン」、「channel」に「Conversation ID」を指定し、「Test Method」をクリック。

4. conversations.repliesの動作確認

conversations.replies」は、特定のスレッドのメッセージを取得するAPIです。slackのテスターサイトで動作確認します。

(1) slackのテスターサイトの「conversations.replies」を開く。

(2) 「token」に「トークン」、「channel」に「Conversation ID」、「ts」にスレッドの「ts」を指定し、「Test Method」をクリック。

5. Pythonによるメッセージ受信

Pythonによるメッセージ受信を行います。

(1) 「pip」で「requests」をインストール。

$ pip install requests


(2) 以下のPythonスクリプトを作成して実行。
<トークン><Conversation ID>に自身のものを指定してください。

import requests
from datetime import datetime

TOKEN = '<トークン>'
CHANNEL = '<Conversation ID>'

url = "https://slack.com/api/conversations.history"
headers = {"Authorization": "Bearer "+TOKEN}
params = {
   "channel": CHANNEL,
   "limit": 10
}
r = requests.get(url, headers=headers, params=params)
print("return ", r.json())

パラメータは、次のとおりです。

・token : トークン
・channel : Conversation ID
・cursor : カーソル
・inclusive : タイムスタンプ指定時に最新または最古のメッセージを含める
・latest : メッセージの時間範囲の終了(now: Unix Timestamp)
・limit : メッセージの最大数
・oldest : メッセージの時間範囲の開始(0: Unix Timestamp)

「Unity Timestamp」のnowは、datetime.now().timestamp()で取得できます。

この記事が気に入ったらサポートをしてみませんか?