Calendar API nach Update funktioniert nicht mehr

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
1.946
Punkte für Reaktionen
777
Punkte
134
Mir ist aufgefallen, dass nach dem Update die CalDAV Links anders aussehen. Vielleicht liegts daran?
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
leider nein.
Ein Abruf der Termine ist problemlos möglich.
Nur das Eintragen der Termine macht Probleme
 

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
1.946
Punkte für Reaktionen
777
Punkte
134
ok, dann bin ich leider raus, mit API hab ich nicht so :)
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
die hatte ich ja vorher.
habe mittlerweile auch eine Antwort vom Support.

Sinngemäß: wir haben ein update raus gebracht, wodruch sich die API auch ändert.
Die Doku wird aber irgendwann noch aktualisiert -.-

Meine Frage wird aber an einen Entwickler weitergegeben.
 

sh4rxy

Benutzer
Mitglied seit
05. Mai 2024
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Ich habe dasselbe Problem und hoffe , dass es dort schnell eine aktualisierte Dokumentation zu gibt, da ich sehr viele Kalendereinträge über die API erstelle. Laut Changelog wurde auch die Timezone-Version aktualisiert. Diese wird aber nach wie vor trotzdem problemlos ausgelesen. Daran liegt es also nicht. Vielleicht hat es wirklich etwas mit den geänderten CalDav Links zu tun sowas die Einträge zwar abgerufen werden können, aber zum erstellen eines Eintrags müssen die verschiedenen Kalender anders angesteuert werden.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
Habe die Lösung zwischenzeitlich gefunden.
Auf die Antwort von syno kann man ja ewig warten 😅. Reiche die Lösung nachher nach. Bin unterwegs
 
  • Like
Reaktionen: sh4rxy

sh4rxy

Benutzer
Mitglied seit
05. Mai 2024
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Hey das ist ja super. Freue mich auf die Lösung und Danke schonmal vorab 👍
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
PHP:
// Synology Create Event
function createEvent($start,$end,$salutation, $fname,$lname,$address, $issue) {
    
    global $calID, $apiInfo, $caldavUsername, $caldavPassword;
    
    $responses['synoLogin'] = synoLogin( $caldavUsername, $caldavPassword );
    
    $createEvent = startCurl($apiInfo['data']['SYNO.Cal.Event']['path'], $responses['synoLogin']['data']['synotoken'],
        array(       
            'api'                             =>     'SYNO.Cal.Event',
            'method'                     =>     'create',
            'version'                     =>     5,
            'cal_id'                         =>     $calID,
            'original_cal_id'         =>     $calID,
            'summary'                     =>     trim($salutation." ".$fname." ".$lname),
            'is_all_day'                 =>     'false',
            'is_repeat_evt'             =>     'false',
            'tz_id'                             =>     'Europe/Berlin',
            'dtstart'                         =>     strtotime($start),
            'dtend'                         =>     strtotime($end),
            'description'                 =>     $issue,
            'location_info'             =>     '{"map_type":"","name":"'.$address.'","address":"","place_id":"","gps":{"lat":-1,"lng":-1}}',
            'participant'                 =>     '[]',
            'color'                         =>     '""',
            'notify_setting'             =>     '[{"type":"duration","duration":{"related":"start","minutes":-60},"recurrence_id":""}]',
            '_sid'                            =>    json_encode($responses['synoLogin']['data']['sid'])
        )
    );
    
    

    return $createEvent;
}

Das sind die Paramater, welche man für das Eintragen eines Termins mitgeben muss.
 

sh4rxy

Benutzer
Mitglied seit
05. Mai 2024
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Müssen diese Parameter zwingend alle übergeben werden? Ich habe vorher nur mit einer Auswahl davon gearbeitet und mit Version 3. Nun erhalte ich den Fehler 9016.
Mir ist aufgefallen , dass der Parameter „location“ nun „location_info“ heißt. Ich habe mal testweise nur die Version auf 5 geändert und den Locationparameter umbenannt aber die neuen Parameter participant, color und notify_setting weggelassen. Dann erhalte ich auch den Fehler 9009.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
Ja die Parameter müssen übergeben werden, auch wenn diese leer sind.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
man muss aber auch dazu sagen (habe ich ebenfalls schon in Richtung Synology kommuniziert):
Ich habe via api auch immer mir die Kalender abgerufen.
Dort gab es einen "modify_time" Parameter = ein timestamp der ausgesagt hat, wann die letzte Änderung im Kalender stattgefunden hat.

Darüber konnte ich immer feststellen, ob eine Änderung stattgefunden hat, oder nicht.
Diese Parameter wird mit der neuen Version auch nicht mehr übergeben.
Heißt: Ich weiß aktuell nicht, ob was geändert wurde oder nicht.
 

sh4rxy

Benutzer
Mitglied seit
05. Mai 2024
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Mhh, seltsam. Vielleicht wurde dieser Parameter auch umbenannt. Ich setze mich heute Abend mal an mein Skript und überarbeite das mit den Parametern die du mir aufgelistet hast. Mal schauen ob es funktioniert.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.248
Punkte für Reaktionen
70
Punkte
68
PHP:
Array

(

    [data] => Array

        (

            [list] => Array

                (

                    [0] => Array

                        (

                            [cal_color] => #71A81F

                            [cal_description] =>

                            [cal_displayname] => MeinKalender

                            [cal_id] => /SynoCalDAV/SynoUser--mcmkupcs/

                            [cal_privilege] => RW

                            [cal_public_sharing_id] =>

                            [cal_type] => event

                            [default_calendar] =>

                            [is_hidden_in_cal] =>

                            [is_hidden_in_list] =>

                            [notify_alarm_by_browser] => 1

                            [notify_alarm_by_mail] => 1

                            [notify_evt_by_browser] => 1

                            [notify_evt_by_mail] =>

                            [notify_import_cal_by_browser] => 1

                            [notify_import_cal_by_mail] => 1

                            [original_cal_id] => /SynoUser/mcmkupcs/

                            [original_ug_name] => SynoUser

                            [original_user_no] => 1025

                        )


                )


        )


    [success] => 1

)


Mehr kommt da nicht.
 

sh4rxy

Benutzer
Mitglied seit
05. Mai 2024
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Ich kriege es leider noch nicht hin einen Eintrag zu erstellen. Ich lasse das allerdings nicht über CURL laufen sondern über ein VBA Makro in Excel. Wenn ich dort die Parameter ergänze und leer übergebe erhalte ich trotzdem den Fehler 9009. Dann habe ich einen Kurzbefehl auf dem iPhone für ein Detailabruf zu einer evt_id. Wenn ich diesen Ausführe erhalte ich eine Menge von Parametern die mir meiner Meinung nach neu sind.
Zum Beispiel
due_utc
dtstart_utc
dtend_utc
dtstart_string
dtend_string

Aber ich erhalte auch modify_time und sogar modify_time2

Weiß jetzt nicht wirklich wie ich mein VBA Skript wieder in Gang kriege.
 

sh4rxy

Benutzer
Mitglied seit
05. Mai 2024
Beiträge
14
Punkte für Reaktionen
3
Punkte
3
Auch nochmal Kontakt mit dem Support aufgenommen. Der hat mir jedoch gesagt, dass die API Dokumentation demnächst aktualisiert wird (soweit waren wir ja schon) und das jetzt die Version 2 von create benutzt werden muss. Das ist in meinen Augen aber Quatsch und funktioniert auch nicht. Außerdem solle ich mal über die Weboberflöche des Kalenders einen Eintrag erstellen und mit dem Browser-Debugger verfolgen was gesendet wird. Ergebnis : Genau die Parameter die du oben schon gepostet hast , sowie Version 5. Komisch nur das ich trotzdem , auch wenn ich alle Parameter nutze, keinen Eintrag erstellen kann. Ich erhalte immer Fehlercode 9009. Werd hier noch verrückt.
 


 

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