4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

#Slack API を叩いて全メンバーを一個のチャンネルに招待する #python スクリプトの例 (雑バージョン)

Last updated at Posted at 2019-05-29

ATTENTION

  • チャンネルIDの取得方法は適当にググる (チャンネル名ではない)
  • Slack App を登録して Tokenを得て、適切な Permission を設定しておく
  • メンバー数が多い場合には対応していない、ページングに対応していない
  • 重複招待でエラーが返ってくる問題にも対応していない
  • API制限に引っかかったら適当に sleep 入れるなりして対処してください
  • 例では無意味に jq コマンドかましてます

all-member-list.py

#!/usr/bin/env python3

# https://api.slack.com/methods/users.list

import requests, os, json

url = "https://slack.com/api/users.list"

params = {
  "token" : os.environ.get('SLACK_TOKEN'),
}

headers = {
  'Content-type': 'application/json'
}

res = requests.get(url, headers=headers, params=params)

print(json.dumps(res.json()))

invite-to-channel.py

#!/usr/bin/env python3

# https://api.slack.com/methods/channels.invite
# https://slack.com/api/channels.invite

import requests, os, json, sys

url = "https://slack.com/api/channels.invite"

members = json.loads(sys.stdin.read())

for member in members:
  params = {
    "token" : os.environ.get('SLACK_TOKEN'),
    "channel" : os.environ.get('CHANNEL'),
    "user" : member.get('id'),
  }
  
  headers = {
    'Content-type': 'application/json'
  }

  res = requests.post(url, headers=headers, params=params)

  print(json.dumps(res.json()))

exe

export SLACK_TOKEN=xxxxxxxxxxxxxxxx && ./all-member-list.py | jq -r '.members' | CHANNEL=xxxxxxx ./invite-to-channel.py

ワークスペースのデフォルトチャンネルを設定

一度全員招待しても、WorkSpaceのメンバーが増えたらやり直しなので、admin設定でデフォルトチャンネルも設定しておくと良いかも

image

有料プランなら

  • 全メンバーをSlackグループに入れておく
  • グループに対して invite する

っていう手順で、API叩かなくてもできるかもしれません。

Original by Github issue

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?