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設定でデフォルトチャンネルも設定しておくと良いかも
有料プランなら
- 全メンバーをSlackグループに入れておく
- グループに対して invite する
っていう手順で、API叩かなくてもできるかもしれません。
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。