Calendar - *.ics Datei via PHP downloaden

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

springboy69

Benutzer
Registriert
10. Jan. 2010
Beiträge
8
Reaktionspunkte
0
Punkte
7
Hallo zusammen und ein gutes Neues Jahr.

von meinem Calendar Konto kann ich ohne weiteres über den Browser die entsprechende *.ics Datei downloaden.
Dazu einfach https://<meineDS>/caldav/<User>/xyzabc/ eingeben und schon geht ein Anmeldefenster für Benutzernamen und Kennwort auf. Die Datei wird gespeichert - alles funtzt.
Ebenso mit https://<Benutzer>:<Kennwort>@<meineDS>/caldav/<User>/xyzabc/ - damit entsprechend ohne das Anmeldefenster.

Nun möchte ich dies aber nicht "manuell" ausführen, sondern über ein PHP Script. Die soll die Datei herunter laden und in einem Verzeichnis als schedule.ics speichern.
Ich habe dies mit:

$meinedatei = file_get_contents('https://<Benutzer>:<Kennwort>@<meineDS>/caldav/<User>/xyzabc/')
$meinedatei = file('https://<Benutzer>:<Kennwort>@<meineDS>/caldav/<User>/xyzabc/')

versucht. Die Variable bleibt immer leer.

Nun bin ich "nur" ein ambitionierter Hobby-Programierer - deshalb komme ich hier auch nach stundenlanger Recherche im Netz nicht weiter.

Ich freue mich über jeden Tipp.

Grüße
 
Hi,

$meinedatei = file_get_contents('https://<Benutzer>:<Kennwort>@<meineDS>/caldav/<User>/xyzabc/')

Bleibt die Variable leer, stimmt die URL nicht oder file_get_contents kann es in dieser Form nicht verarbeiten.
Der Aufruf ist nicht mit dem Browser vergleichbar, die URL wurde sicher umgeschrieben. Mein CalDav Server erwartet bspw. immer ein ?export am Ende der URL.
Schau mal in die Logs: /var/log/synocal_caldav.log wie wird deine Anfrage protokolliert?

Du schreibst explizit php ?? Wenn es dir nur um das Erstellen der schedule.ics geht ?? per Script sollte das recht schnell auch mit wget umsetzbar sein:
Rich (BBCode):
wget --no-check-certificate --http-user=MeinUser --http-password=MeinPasswort https://<meineDS>/caldav/<User>/xyzabc/ -O /volumeX/caldav/schedule.ics

Ist php aber immer noch dein Favorit kannst du diesen Aufruf auch dort platzieren:

Rich (BBCode):
<?php
exec("wget --no-check-certificate --http-user=MeinUser --http-password=MeinPasswort https://<meineDS>/caldav/<User>/xyzabc/ -O /volumeX/caldav/schedule.ics")
?>

Noch immer nicht passend :confused: Dann gibts noch cURL; das verfügt über deutlich mehr Optionen mit (CURLOPT_USERPWD und CURLOPT_HTTPAUTH).

Bob
 
Hallo Bob,

Vielen Dank für deine Hilfe.
Beide Varianten funktionieren ohne Probleme. Du hast mir sehr geholfen. :D
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat