使用Python编程创建100个组

我问了 GPT 机器人,它可能接近答案了,但我是个新手,在弄坏东西之前,希望能得到一些高明的见解。

我有一个包含 100 个群组名称的列表(可以是逗号分隔的,或者文件,或者其他任何形式)。

我想导入它们,并让它们拥有相同的设置,如下所示:

允许用户自由加入群组(需要公开可见的群组)
允许用户自由退出群组
–无自动成员–

以及

以下是机器人提供的内容,看起来是个开始,但我不太想通过破解来使用它:

GPT 说:

但是,您可以使用 Discourse API 以编程方式创建群组。这需要一些技术知识和对 API 的熟悉。

以下是使用 requests 库在 Python 中执行此操作的基本示例:

import requests

api_key = 'your_api_key'
api_username = 'your_api_username'
base_url = 'https://your_discourse_url.com'

headers = {
    'Api-Key': api_key,
    'Api-Username': api_username,
}

for i in range(1, 101):
    data = {
        'name': f'group_{i}',
        'visible': True,
        'automatic_membership_email_domains': 'example.com'
    }
    response = requests.post(f'{base_url}/admin/groups', headers=headers, data=data)
    print(f'Created group {i}, response code: {response.status_code}')

'your_api_key''your_api_username''https://your_discourse_url.com' 替换为您实际的 API 密钥、API 用户名和 Discourse URL。

谢谢。

3 个赞

看起来大部分是正确的。

不过,在循环处理一百个之前,先试一两个看看是否有效!

你可以查看 逆向工程 Discourse API 来查看你是否如愿获得了所有的群组设置。

另请参阅 Use the Discourse API ruby gem

8 个赞

像这样:

group_names.each do |name|
  begin
  response = client.create_group(name: name,
    visibility_level: 0,
    members_visibility_level: 0,
    mentionable_level: 3,
    messageable_level: 3,
    public_exit: true,
    public_admission: true
  )
  group_id = response["basic_group"]["id"]
  group_name =response["basic_group"]["name"]
  puts "创建了 #{group_name}(#{group_id})"
  sleep 1
rescue => e
  puts "哎呀。处理 #{name} 时遇到问题 #{e}"
  sleep 1
end

4 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.