Я хочу добавить пользователей в группы в nextcloud через их API .
Мне удалось добавить одного пользователя (ncuser) в Group1 и Group2 из моего CLI, выполнив этот запрос:
curl -X POST https://adminuser:'admin pass phrase'@cloud.example.org/ocs/v1.php/cloud/users/ncuser/groups -d groupid="Group1" -d groupid="Group2" -H "OCS-APIRequest: true"
Со следующим ответом:
<?xml version="1.0"?>
<ocs>
<meta>
<status>ok</status>
<statuscode>100</statuscode>
<message>OK</message>
<totalitems></totalitems>
<itemsperpage></itemsperpage>
</meta>
<data/>
</ocs>
Я попытался выполнить запрос в Rstudio с этим кодом:
library(curl)
library(httr)
call <- POST("https://adminuser:'admin pass phrase'@cloud.example.org/ocs/v1.php/cloud/users/ncuser/groups",
body = list(groupid = "Group1", groupid = "Group2"),
add_headers('OCS-APIRequest' = "true", 'Content-Type' = "application/x-www-form-urlencoded"))
Но это не удачно. Я получаю этот ответ в R:
Response [https://adminuser:'admin pass phrase'@cloud.example.org/ocs/v1.php/cloud/users/ncuser/groups]
Date: 2020-03-22 15:43
Status: 401
Content-Type: application/json; charset=utf-8
Size: 140 B
Вот содержание моего запроса R POST:
content(call)
$ocs
$ocs$meta
$ocs$meta$status
[1] "failure"
$ocs$meta$statuscode
[1] 997
$ocs$meta$message
[1] "Current user is not logged in"
$ocs$meta$totalitems
[1] ""
$ocs$meta$itemsperpage
[1] ""
$ocs$data
list()
Похоже, я не смог войти через POST () url, и нужно добавить adminuser и 'фразу-пароль администратора' каким-либо другим способом, но я не уверен, как это сделать.
Кроме того, в документации API nextcloud указано, что OCS-APIRequest и тип содержимого должен быть указан в заголовке, но я не уверен, правильно ли я это сделал.
Все вызовы конечных точек OCS требуют, чтобы заголовок OCS-APIRequest был установлен в true.
Для всех запросов POST требуется заголовок Content-Type: application / x- www-form-urlencoded. (Примечание: некоторые библиотеки, такие как cURL, устанавливают этот заголовок автоматически, другие требуют явной установки заголовка.)
Как мой запрос POST должен быть записан в R, чтобы я мог успешно добавлять пользователей nextcloud в группы?
Любая помощь будет принята с благодарностью.