2022年3月2日水曜日

Pythonを使用して、Nextcloudのユーザ情報を更新する

Pythonを使用して、Nextcloudのユーザ情報を更新するには、以下の手順を実行します

実行手順

1.poetryのインストール
sudo apt-get update && sudo apt-get -y install python3 python3.8-venv

curl -sSL https://install.python-poetry.org | python3 -

echo 'export PATH="~/.local/bin:$PATH"' >> ~/.profile

source ~/.profile

2.lxmlとrequestsのインストール
以下のコマンドでlxml, requestsをインストールした仮想環境を作成します
mkdir -p ~/nextcloud_api

cd ~/nextcloud_api

poetry init -n

poetry add lxml

poetry add requests

poetry shell

3. プログラムの作成と実行
以下のPythonスクリプトを実行すると、指定したユーザのフィールドを更新します
nc_update_user.py
# coding: utf-8
from lxml import etree
import requests

user = 'adminuser'
password = 'adminpass'
host = 'yourhost:8080'

# 変更するユーザのID
userid = "sampleuser"
baseuri="http://" + user + ":" + password + "@" + host + "/ocs/v1.php/cloud/users/" + userid
headers = {'content-type': 'application/x-www-form-urlencoded', 'OCS-APIRequest':'true'}
# keyで更新するフィールドを指定します。指定可能なフィールドは https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/instruction_set_for_users.html#list-of-editable-data-fields を参照してください。
params = {
  'key': 'password', 
  'value': 'PassNextcloud123'
}
response = requests.put(
  baseuri,
  params=params,
  headers=headers)

print(response.content)

・実行コマンド
python3 nc_update_user.py

関連情報

・User provisioning API
https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_provisioning_api.html

・Nextcloudに関する記事は、以下のまとめを参照してください。
Nextcloudのまとめ

0 件のコメント:

コメントを投稿