AndroidとかiOSとかモバイル多め。その他技術的なことも書いていきます。

Python3でSlackのステータスを変える

最近Slackにステータスの機能が実装された。ミーティング中や帰宅済みなど名前の横を見ればステータスがわかるようになって非常に便利になった。 https://get.slack.help/hc/ja/articles/201864558-Slack-%E3%81%AE%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B APIが公開されていてトークンがあればSlackの外から変更できる。 https://api.slack.com/methods/users.profile.set トークンの取得はこちらから https://api.slack.com/custom-integrations/legacy-tokens 以下はPython3でのコードになります。

環境

  • python 3.6.0
  • requests 2.13.0

コード

import requests
import json
import sys

arguments = sys.argv
text = arguments[1]
emoji = arguments[2]
url = "https://slack.com/api/users.profile.set"
params = {
    "token": "your_token",
    "profile": json.dumps(
        {
            "status_text": text,
            "status_emoji": emoji
        }
    )
}
headers = {"Content-Type": "application/json"}
r = requests.get(url, params=params, headers=headers)
print(r.url)
print(r.text)

実行

python3 change_slack_status.py "In meeting" ":spiral_calendar_pad:"