【poetry】slackのAPIを連携するためのslackclient+slack投稿の実装手順

poetryにslackclientを追加

poetryでslackのAPIを使うために、

slackclientを追加します。

poetry add slackclient

以下の表示が出てきました。無事にaddできたようです。

Using version ^2.7.3 for slackclient

Updating dependencies
Resolving dependencies... (2.9s)

Writing lock file


Package operations: 17 installs, 0 updates, 0 removals

  - Installing idna (2.10)
  - Installing multidict (4.7.6)
  - Installing async-timeout (3.0.1)
  - Installing attrs (19.3.0)
  - Installing chardet (3.0.4)
  - Installing pyparsing (2.4.7)
  - Installing six (1.15.0)
  - Installing yarl (1.5.1)
  - Installing aiohttp (3.6.2)
  - Installing atomicwrites (1.4.0)
  - Installing more-itertools (5.0.0)
  - Installing packaging (20.4)
  - Installing pluggy (0.13.1)
  - Installing py (1.9.0)
  - Installing wcwidth (0.2.5)
  - Installing pytest (4.6.11)
  - Installing slackclient (2.7.3)

僕は、websocket-clientをインストールしました。

poetry run pip install websocket-client

以下の通り、問題なくインストールができました。

Collecting websocket-client
  Downloading https://files.pythonhosted.org/packages/4c/5f/f61b420143ed1c8dc69f9eaec5ff1ac36109d52c80de49d66e0c36c3dfdf/websocket_client-0.57.0-py2.py3-none-any.whl (200kB)
     |████████████████████████████████| 204kB 1.9MB/s
Requirement already satisfied: six in ./.venv/lib/python3.8/site-packages (from websocket-client) (1.15.0)
Installing collected packages: websocket-client
Successfully installed websocket-client-0.57.0
WARNING: You are using pip version 19.2.3, however version 20.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

slack api のtokenを発行する

参考 slack apislack

まずは、画面右側のYor Appsに移動します。

slack api your app

Ceate New appで新しいappを発行します。

今回は、slackのチャネルへの投稿なので、

以下のscopeを発行します。

これで以下のように、xoxb-から始まる、

OAuth Tokenが発行されました。

slack OAuth & Permission

Pythonスクリプトの作成

pythonで必要なスクリプトを作成します。

今回は、#randomのチャネルに、Hello worldと

投稿できるように設定しました。

import slack
import requests

url = "https://slack.com/api/chat.postMessage"
data = {
   "token": "<your token>",
   "channel": "#random",
   "text": "Hello world"
}
requests.post(url, data=data)

これで準備完了です。

実際にpoetryを実行してみます。

poetry run python (実行するファイル)

すると#randomに、以下のようにslackで表示されました。

hello world

無事に成功です!

まとめ

pythonのスクリプトもさることながら、

slack apiのscopeの設定が意味不明でだいぶ時間がかかりました。

pythonとの連携だけであれば、

このスクリプトで簡単にできますので、ぜひ試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA