うさぎとスマホとプログラム

空色のうさぎ、手放せないスマホ、動けば良しのプログラム。 いつか自分の役に立つことを書く。

適プロ第1回 Slackのプロフ画をPythonから変える

適当プログラミング 略して適プロです。
前々からやりたかったのでやってみます。

前々調べたメモによると
APIここで公開されてるしライブラリはここにあったので
環境は十分揃っているらしい。


開発環境
 Python3.6.4(64bit)
 Windows 10

Step1 ライブラリ導入

まずはライブラリを入れます。
ぱっと見 from slackclient import SlackClient
とかいうそれらしきものがあったので

とりあえずコマンドプロンプトを起動して
pip install slackclient
でインストールを試みる。


これで特に問題なく入った。

Step 2 トークン用意

こういうのはトークンが必要なので用意する。
https://slackapi.github.io/python-slackclient/auth.html#handling-tokens
を見た感じ 公開サービスはOAuthがどうこうを推奨らしいが
個人なら Legacy token generator で十分っぽい。
https://api.slack.com/custom-integrations/legacy-tokens
トークンはワークスペース毎に異なるので注意。

Step 3 メッセージを送ってみる

まぁまずはハローワールドをしようってことでやってみる。
from slackclient import SlackClient

slack_token = os.environ["SLACK_API_TOKEN"]
sc = SlackClient(slack_token)

sc.api_call(
  "chat.postMessage",
  channel="C0XXXXXX",
  text="Hello from Python! :tada:"
)
channelに入れるやつは?っていうとワークスペース内のチャンネルの内部IDらしい
試しはプライベートグループに送りたいのでプライベートグループ一覧を取る
こんな感じにすれば辞書型でプライベートチャンネル一覧が取れた。
チャンネルが分かったので上のをやってみる。

問題なく送れた。


Step 4 画像を変えてみる

はじめに出した https://api.slack.com/methods/users.setPhoto
を参考に書いてみる。
なんかダメだった。どうやらドキュメントを見直した感じだと
チャンネルへのメッセージ送信関連しかこのライブラリではサポートされていないらしい。仕方がないのでRequestsでAPIに直接POSTしてみる。
これでアップロードできた。

まとめ

Slack WebAPIに書いてある通りにRequestsを使ってPOSTしたら使えるライブラリは無視でOK