我搜索过,找不到在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"
这里有什么问题?
答案 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;
希望有所帮助