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

ほぼ正しいようです。

ただし、100個をループ処理する前に、1つか2つで動作するか確認してください。

Reverse engineer the 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.