邀请用户组加入松弛 public 频道
Invite User Group to a slack public channel
我正在使用 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 邀请用户组加入频道的权利吗?
这不是它在 Slack 中的工作方式。
您可以通过https://api.slack.com/methods/groups.info
获取群组成员
然后您可以从 group_data["group"]["members"]
中提取您希望用户从中邀请用户的组的用户 ID 列表。
在你可以做同样的事情之后,你可以在其中添加他们。
每个组有2个用户列表后,您可以合并它们,然后提出请求:
invite_url = 'https://slack.com/api/usergroups.update'
invite_url_data = {
'token': auth_token,
'channel': scid,
'usergroup': 'SPXXXXXX',
'name': 'testing',
'users': [
"U060R4BJ4", # here are your users from a merged lists
"U060RNRCZ"
],
}
r = requests.post(url=invite_url, data=invite_url_data, headers=header)
邀请用户组的用户加入私人频道确实只是一个 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 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 邀请用户组加入频道的权利吗?
这不是它在 Slack 中的工作方式。
您可以通过https://api.slack.com/methods/groups.info
获取群组成员然后您可以从 group_data["group"]["members"]
中提取您希望用户从中邀请用户的组的用户 ID 列表。
在你可以做同样的事情之后,你可以在其中添加他们。 每个组有2个用户列表后,您可以合并它们,然后提出请求:
invite_url = 'https://slack.com/api/usergroups.update'
invite_url_data = {
'token': auth_token,
'channel': scid,
'usergroup': 'SPXXXXXX',
'name': 'testing',
'users': [
"U060R4BJ4", # here are your users from a merged lists
"U060RNRCZ"
],
}
r = requests.post(url=invite_url, data=invite_url_data, headers=header)
邀请用户组的用户加入私人频道确实只是一个 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)