Hallo,
für einen Abruf von Webdav-Dateien mittels Curl benötige ich Hilfe, ich komme nicht weiter. Wahrscheinlich hänge ich an der Authentifizierung.
Bislang hatte ich meine Kalender-Dateien (ICS) bei Web.de liegen und - wie hier beschrieben - per PHP-Script über Webdav abgerufen und in IPS verarbeitet. Aus dienstlichen Gründen war es nötig, das zu ändern und auf Horde/Kronolith umzusteigen. Nun funktioniert folgendes Skript nicht mehr:
$url = "https://USER:PASSWORT@WEBDAVURL/kalender.ics";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_URL, $url);
$file_txt = IPS_GetKernelDir()."media\\Kalender\\kalender.txt";
$fp = fopen($file_txt, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_exec ($ch);
curl_close ($ch);
fclose($fp);
Das Skript braucht ewig und bricht mit einem Timeout ab. Wenn ich „CURLOPT_SSL_VERIFYPEER“ auskommentiere, läuft es zwar, aber es kommt nix an.
Die neue URL ist kein Pfad, sondern offenbar ein Skript (https://SERVER/horde/rpc.php/kronolith/USER/ZEICHEN-SALAT.ics). Ich habe User und Passwort auch schon versucht über CURLOPT_USERPWD zu setzen und mit CURLOPT_HTTPAUTH experimentiert - aber es bleibt laienhaftes Stochern im Nebel. Ehrlich gesagt versteh ich nicht mal die Beschreibungen bei php.net zu „curl_setopt“, weil ich nicht weiß, welche Optionen ich benötige.
Zwischenzeitlich hatte ich zumindest mal ein Authentifikationsproblem in der lokalen kalender.txt gespeichert, aber mittlerweile kommt gar nix mehr an; die Datei bleibt leer.
Wenn mich jemand aufs richtige Gleis setzen könnte, wäre das klasse!
Dank und Grüße
galleto