大量のスパムに関するヘルプ

これまでのご返信に感謝いたします。

登録を1日無効にしたことで、なんとか状況を改善することができました。

@RGJ グループへの追加と投稿権限の付与に際して、いくつかのハードルを設けるというあなたのアイデアは良いですね。これを検討することにします。

データエクスプローラーを使用して、これまで見過ごされていた約5,000件のボットアカウントを特定することができました。

@MikeNolan Railsコンソールへのアクセス権があるかどうかはまだ不明です。私たちはDiscourseと直接ホスティング契約をしており、購入・オンボーディングプロセスには関わっていなかったため、どのようなアクセス権があるかを確認するために、この件を上司に確認しています。

API経由でも削除を実行できると考えてよいでしょうか?簡単にAPI認証情報を作成できることがわかりました。

以下のようなスクリプトです。

import csv
import requests
import time

api_key = 'api_key'
api_username = 'api_username'
base_url = 'https://mydomain.com'
headers = {
    'Api-Key': api_key,
    'Api-Username': api_username
}

def delete_user(user_id):
    delete_url = f'{base_url}/admin/users/{user_id}.json'
    response = requests.delete(delete_url, headers=headers)
    
    if response.status_code == 200:
        print(f'Successfully deleted user {user_id}')
    else:
        print(f'Failed to delete user {user_id}. Status code: {response.status_code}, Response: {response.text}')

with open('user_ids_to_delete.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        user_id = row[0]
        try:
            delete_user(user_id)
        except Exception as e:
            print(f'Error occurred while deleting user {user_id}: {e}')
        
        time.sleep(1)  # サーバーへのリクエスト過多を避けるために遅延を追加
「いいね!」 1