"$baseUrl/ocs/v2.php/cloud/apps?filter=enabled", CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPAUTH => CURLAUTH_BASIC, CURLOPT_USERPWD => "$username:$password", CURLOPT_HTTPHEADER => ['OCS-APIRequest: true', 'Accept: application/json'], ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo "HTTP Status: $httpCode\n"; if ($httpCode == 200) { $data = json_decode($response, true); if (isset($data['ocs']['data']['apps'])) { $apps = $data['ocs']['data']['apps']; echo "Найдено приложений: " . count($apps) . "\n\n"; // Ищем редакторы $editors = []; foreach ($apps as $app) { if (stripos($app, 'office') !== false || stripos($app, 'collabora') !== false || stripos($app, 'richdocuments') !== false || stripos($app, 'onlyoffice') !== false) { $editors[] = $app; } } if (!empty($editors)) { echo "📝 Найдены редакторы документов:\n"; foreach ($editors as $editor) { echo " - $editor\n"; } } else { echo "⚠️ Редакторы документов не найдены!\n"; } echo "\n📋 Все приложения:\n"; foreach (array_slice($apps, 0, 20) as $app) { echo " - $app\n"; } if (count($apps) > 20) { echo " ... и ещё " . (count($apps) - 20) . " приложений\n"; } } } else { echo "Ошибка получения списка приложений\n"; echo "Response: $response\n"; } // 2. Проверяем конкретные редакторы echo "\n\n2. Проверяем доступность конкретных редакторов...\n"; $editors_to_check = [ 'richdocuments' => "$baseUrl/apps/richdocuments", 'onlyoffice' => "$baseUrl/apps/onlyoffice", 'files_texteditor' => "$baseUrl/apps/files_texteditor", ]; foreach ($editors_to_check as $name => $url) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_NOBODY => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTPAUTH => CURLAUTH_BASIC, CURLOPT_USERPWD => "$username:$password", ]); curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $status = $httpCode == 200 ? '✅ Доступен' : '❌ Недоступен'; echo " $name: $status (HTTP $httpCode)\n"; } // 3. Проверяем fileId для тестового документа echo "\n\n3. Проверяем fileId для документа 395695...\n"; $ncPath = '/crm/crm2/CRM_Active_Files/Documents/395695/zayavlenie_proekt.docx'; $webdavUrl = "$baseUrl/remote.php/dav/files/admin" . $ncPath; $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => $webdavUrl, CURLOPT_CUSTOMREQUEST => 'PROPFIND', CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Depth: 0', 'Content-Type: application/xml; charset=utf-8', ], CURLOPT_POSTFIELDS => ' ', CURLOPT_HTTPAUTH => CURLAUTH_BASIC, CURLOPT_USERPWD => "$username:$password", ]); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo "HTTP Status: $httpCode\n"; if ($httpCode == 207) { // Парсим XML $xml = simplexml_load_string($response); $namespaces = $xml->getNamespaces(true); foreach ($xml->xpath('//oc:fileid') as $fileid) { echo "FileID: $fileid\n"; } foreach ($xml->xpath('//oc:size') as $size) { echo "Size: $size bytes\n"; } foreach ($xml->xpath('//d:getcontenttype') as $type) { echo "Content-Type: $type\n"; } } else { echo "Ошибка получения fileId\n"; echo "Response: " . substr($response, 0, 500) . "\n"; } echo "\n=== Проверка завершена ===\n";