在Owncloud上创建用户

时间:2015-05-29 18:41:11

标签: owncloud

我搜索过,找不到在owncloud服务器上创建新用户的正确方法。我尝试应用User Provisioning API所说的内容,但我总是得到这样的答复:

<ocs>
 <meta>
  <status>failed</status>
  <statuscode>999</statuscode>
  <message>Invalid query, please check the syntax. API specifications are here: http://www.freedesktop.org/wiki/Specifications/open-collaboration-services. DEBUG OUTPUT: debug output: http request method: POST http request uri: /owncloud/ocs/v1.php/cloud/users%20-d%20userid=%22Frank%22%20-d%20password=%22frankspassword%22</message>
 </meta>
</ocs>

我的HTTP POST是:

http://myuser:mypassword@ip_owncloud_server/owncloud/ocs/v1.php/cloud/users -d userid="Frank" -d password="frankspassword"

这里有什么问题?

3 个答案:

答案 0 :(得分:1)

首先,OwnCloud文档中给出的示例不完整。它假设您使用curl或其他命令行实用程序。我使用jQuery AJAX使用此脚本:

<script>
function doMake() {
$.ajax({
  type: 'POST',
  url: 'http://myowncloud.local:8080/ocs/v1.php/cloud/users',
  data: {'userid':'test', 'password':'test'},
  crossDomain: true,
  beforeSend: function(xhr) {
    xhr.setRequestHeader('Authorization', 'Basic ' + window.btoa(unescape(encodeURIComponent('owncloud-dev' + ':' + 'password'))))
  }
}).done( function(data, status, xhr) {
    document.write(status);
}).fail( function(xhr, status, error) {
    document.write(status + ":" + error);
});
}
</script>

将上面的adduser.html保存在您自己的已安装目录的根目录中。替换Authorization requestHeader中的管理员用户名/密码。

答案 1 :(得分:0)

从消息中看起来,它抱怨在您的用户ID中引用(也许是密码)。我知道你从示例中取出了这个,但是如果删除引号,它可能会有更好的工作机会:

<uses-permission android:name="android.permission.READ_CONTACTS" />

如果你想引用要保护shell的东西,请在整个参数周围加上引号,如

http://myuser:mypassword@ip_owncloud_server/owncloud/ocs/v1.php/cloud/users -d userid=Frank -d password=frankspassword

答案 2 :(得分:0)

您好我在这里发布了一个答案,这里找到了通过这个帖子的人: 我发现这是在Owncloud deve邮件列表中寻找类似的解决方案:http://owncloud.10557.n7.nabble.com/User-Provisioning-API-PHP-Authentification-Error-td15927.html

似乎在php w / cURL中使用它:

<?php

$username = 'lukas';
$password = 'lukas';

$ch = curl_init('http://localhost/master/ocs/v1.php/cloud/groups');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$output = curl_exec($ch);
curl_close($ch);
echo $output;

希望有所帮助