Nextcloud批量添加新用户
需求
我们现在已经在CentOS上搭建好了Nextcloud环境,现在需要新增用户,由于用户数量较多,我们不可能人工一个个手动添加,既费时又费力,因此需要批量新增用户。但是Nextcloud自己不提供这个功能,因此需要借助脚本的力量,我们使用Python来完成这个工作。
开始
使用官方接口
这是官方的用户接口,提供了许多可用接口,我们这里需要使用的是Add a new user
,如下:
官方使用方法:
1 | curl -X POST http://admin:secret@example.com/ocs/v1.php/cloud/users -d userid="Frank" -d password="frankspassword" |
但是我们要用Python,因此不需要用到curl
使用开发者工具解析
我们打开浏览器的开发者工具,然后手动添加一个用户,观察参数如下:
1 | { |
因此,当我们新增用户的时候,需要的关键参数如下(你也可以自己决定你需要的关键参数):
1 | { |
注意此处坑点:你可能发现,开发者工具中看到的显示名称字段为displayname
,n是小写,但是注意,你的代码中一定要写成displayName
,即N要大写,这是我的Nextcloud 19.0.13
的一个小bug,如果你的版本不同,不一定遇到这个问题
获取头文件信息
在刚刚的开发者工具中,将最新一次你登录的信息记录下来,这里我们需要记录的信息有:Cookie
、requesttoken
和User-Agent
当你每一次重新登录的时候,这里的三个信息都需要更新,因此你可以将这三个信息记录在文件中然后用代码读取,本例将包括这三个信息的五条信息都存在文件中。
即我们的头文件信息需要:
1 | headers = { |
完整的Python代码
1 | import xlrd |
准备好你的用户信息文件
我这里使用Excel文件,users.xlsx
和headers.xlsx
注意:分组管理员请谨慎填写,因为这会让普通用户也拥有对于用户的管理权限
运行Python脚本
当你看到200的状态码时,说明你成功了