Files
snippets/matrix-batch-register/README.md

2.3 KiB
Raw Blame History

Matrix Synapse 批量注册账号

自动化批量注册 Matrix (Synapse) 用户账号。

文件

文件 说明
batch_register.py 主脚本
config.json.example 配置示例
users.csv.example 用户列表示例

前置准备

1. 获取 Admin Token

登录 Matrix获取 access token

  • Element Web: 设置 → 帮助与关于 → 访问令牌
  • 或 API: POST /_matrix/client/v3/login

2. 获取 registration_shared_secret

在 Synapse 的 homeserver.yaml 中:

registration_shared_secret: "你的密钥"

如果没有配置,需要先设置一个。

用法

批量注册

# 从 CSV 注册
python3 batch_register.py --config config.json --users users.csv

# 从 JSON 注册
python3 batch_register.py --config config.json --users users.json

# 干运行(先测试)
python3 batch_register.py --config config.json --users users.csv --dry-run

# 保存结果
python3 batch_register.py --config config.json --users users.csv --output results.json

单个用户注册

python3 batch_register.py --config config.json --single \
  --username user1 --password pwd123 --display-name "用户一"

配置文件格式

config.json:

{
  "server_url": "https://matrix.tphai.com",
  "admin_token": "syt_xxx_yyy_zzz",
  "shared_secret": "your_registration_shared_secret",
  "default_password": "changeme123"
}
字段 说明
server_url Matrix 服务器地址
admin_token 管理员 access token
shared_secret homeserver.yaml 中的 registration_shared_secret
default_password 默认密码(用户未指定时使用)

用户列表格式

CSV 格式

users.csv:

username,password,display_name,admin
user1,pass1,用户一,false
user2,pass2,用户二,false
admin1,pass3,管理员,true

JSON 格式

users.json:

[
  {"username": "user1", "password": "pass1", "display_name": "用户一"},
  {"username": "user2", "password": "pass2", "display_name": "用户二"},
  {"username": "admin1", "password": "pass3", "display_name": "管理员", "admin": true}
]

工作原理

  1. 从 Admin API 获取 nonce
  2. 用 shared_secret 生成 HMAC 签名
  3. 调用 /_synapse/admin/v1/register 注册用户
  4. 可选设置 display_name

黄庄4号程序员