gpt4 book ai didi

python - 邀请用户组加入 Slack 公共(public) channel

转载 作者:行者123 更新时间:2023-12-02 05:14:38 26 4
gpt4 key购买 nike

我使用的是 Python 3.7 和 Slack 版本 4.1.2(生产)。我想邀请一个已经存在并且包含许多用户的用户组。

我在 python3 中尝试过的:

def invite_user(scid):
# invite_url = 'https://slack.com/api/channels.invite'
# invite_url = 'https://slack.com/api/groups.invite'
invite_url = 'https://slack.com/api/usergroups.update'
invite_url_data = {
'token': auth_token,
'channel': scid,
'usergroup': 'SPXXXXXX',
'name': 'testing'
}
r = requests.post(url=invite_url, data=invite_url_data, headers=header)
print(r.json())

有人可以帮助我获得正确的 API 来邀请用户组加入 channel 吗?

最佳答案

邀请用户组的用户加入私有(private) channel 实际上只是一次 API 调用。在此之前,您需要获取用户组的用户,这是另一个 API 调用。而且您无法邀请自己,因此您需要另一个 API 调用来获取您当前的用户 ID。

这是一个使用 Slack 官方 python 库的示例脚本。请注意,这最多适用于 1.000 个用户。如果您的用户组较大,您需要分块添加它们。

import slack
import os

# init slack client with access token
slack_token = os.environ['SLACK_TOKEN']
client = slack.WebClient(token=slack_token)

# get my own user ID
response = client.auth_test()
assert response['ok']
my_user_id = response['user_id']

# get members of usergroup excluding myself
response = client.usergroups_users_list(usergroup='S12345678')
assert response['ok']
users = [x for x in response['users'] if x != my_user_id]

# add members to private channel
response = client.conversations_invite(
channel='G12345678',
users = users
)
assert response['ok']
print(response)

关于python - 邀请用户组加入 Slack 公共(public) channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com