Synology Contacts - PHP Prozesse

  • 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.

Ghost108

Benutzer
Registriert
27. Juni 2015
Beiträge
1.278
Reaktionspunkte
76
Punkte
68
Hallo zusammen und ein frohes neues Jahr ! :)

ich arbeite mit einer Synology DS718+ und der DSM 7 Beta.
Installiert habe ich mir nun Synology Contacts und wollte nun realisieren, via PHP die Kontakte abzufragen (im nächsten Schritt auch Kontakte einzutragen).

Habe dafür folgendes PHP CardDav Script gefunden:
https://github.com/christian-putzke/CardDAV-PHP/blob/master/carddav.php
Daraus habe ich folgenden Code-Part bislang getestet:

PHP:
// Check CardDAV server connection
$carddav = new carddav_backend('URL');
$carddav->set_auth('Username', 'Password');
var_dump($carddav->check_connection());


// CardDAV debug
$carddav->enable_debug();
$carddav->get();
var_dump($carddav->get_debug());

Resultat:
PHP:
bool(true)

array(1) {
  [0]=>
  array(7) {
    ["response"]=>
    string(1365) "
    XXX/HTTP/1.1 200 OK"
    ["http_code"]=>
    int(207)
    ["url"]=>
    string(48) "XXX"
    ["method"]=>
    string(8) "PROPFIND"
    ["content"]=>
    NULL
    ["content_type"]=>
    NULL
    ["header"]=>
    string(374) "HTTP/2 401
server: nginx
date: Fri, 01 Jan 2021 11:59:21 GMT
content-type: text/plain; charset=utf-8
content-length: 43
www-authenticate: Basic realm="Radicale - Password Required"

HTTP/2 207
server: nginx
date: Fri, 01 Jan 2021 11:59:21 GMT
content-type: text/xml; charset=utf-8
content-length: 1365
dav: 1, 2, 3, calendar-access, addressbook, extended-mkcol"
  }
}

Das sieht soweit ganz gut aus - Verbindung ist da.
Allerdings erhalte ich keine Auflistung der Kontakte mit "$carddav->get();"

könnt ihr mir helfen?
Oder eine alternative Lösung?

Danke ! :)
 
Für alternative Lösungen müsste man wissen was das eigentliche Ziel ist?
Alternative GUI anstatt Synology Contacts? Oder...
 
Ich habe ein Drittanbieter System, welches mir via HTTP Post Kontaktdaten schickt.
Diese Kontaktdaten würde ich dann gerne via PHP direkt an Contacts schicken, damit eine Kontakteintragung erfolgt.
 
bin ein Schritt weiter:
Kann jetzt einen Kontakt anlegen :)

Habe dafür folgende Code verwendet:

PHP:
$vcard = 'BEGIN:VCARD
VERSION:3.0
FN:Synology Kontakt
UID:5c276af4-7ba1-42a4-9ae2-d911d55bcb1d
N:Kontakt;Synology;;;
EMAIL:muster@mail.de
TEL:0122411515
ADR:;;Musterstraße 3;Musterstadt;;12345;
ORG:WebInterface;
END:VCARD';
$vcard_id = $carddav->add($vcard);

Vorher sieht es so aus:
Bildschirmfoto 2021-01-01 um 14.07.51.png

Nach dem Ausführen des Codes:
Bildschirmfoto 2021-01-01 um 14.08.03.png

Wird der Kontakt erfolgreich angelegt :)
Allerdings nicht unter "Meine Kontakte" sondern als neues Adressbuch "Default display name".
Lasse ich den Code erneut ausführen, kommt ein weiteres Adressbuch "Default display name" dazu.

Woran könnte das jetzt noch liegen?
 
Ach lass uns doch bitte an Deinen Erkenntnissen teilhaben - ich beschäftige mich gerade ebenfalls mit dem Thema.
Wie hast Du es geschafft, den Kontakt in die richtige Kategorie einzutragen - und wie hast Du es geschafft, die Kontakte mit "$carddav->get();" zu lesen?
Wäre super, wenn Du kurz noch was dazu sagen könntest... Danke.
 
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