【问题标题】:next cloud ocs create share api permission issuenextcloud ocs 创建共享 api 权限问题
【发布时间】:2022-09-29 13:01:35
【问题描述】:

在 ocs share api 的帮助下创建共享链接时,我能够创建链接,但它没有设置我试图授予它的权限。

        $ch = curl_init(\"https://servername/ocs/v2.php/apps/files_sharing/api/v1/shares\");
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(\'Content-Type: multipart/form-data\', \"OCS-APIRequest:true\"));
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_USERPWD, getenv(\'NEXTCLOUDUSERNAME\') . \":\" . getenv(\'NEXTCLOUDPASSWORD\'));
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"POST\");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $return = curl_exec($ch);

    标签: php curl server nextcloud ocs


    【解决方案1】:
    function curlPost($url, $headers, $username, $password, $data) {
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
         curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
         curl_setopt($ch, CURLINFO_HEADER_OUT, true);
         curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
         curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
         curl_setopt($ch, CURLOPT_POST, 1);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
         return curl_exec($ch);
         curl_close($ch);
    }
    
    $url = 'https://SERVERNAME/ocs/v2.php/apps/files_sharing/api/v1/shares';
    $headers = Array('OCS-APIRequest: true');
    $username = 'NEXTCLOUDUSERNAME';
    $password = 'NEXTCLOUDPASSWORD';
    $data = 'path=PATH/FILE.xxx&shareType=3&permissions=1&format=json';
    echo curlPost($url, $headers, $username, $password, $data);
    

    【讨论】: