Calendar API nach Update funktioniert nicht mehr

Mir ist aufgefallen, dass nach dem Update die CalDAV Links anders aussehen. Vielleicht liegts daran?
 
leider nein.
Ein Abruf der Termine ist problemlos möglich.
Nur das Eintragen der Termine macht Probleme
 
ok, dann bin ich leider raus, mit API hab ich nicht so :)
 
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.
 
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.
 
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
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 

Additional post fields

 

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