Synology Contacts - PHP Prozesse

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
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 ! :)
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.164
Punkte für Reaktionen
915
Punkte
424
Für alternative Lösungen müsste man wissen was das eigentliche Ziel ist?
Alternative GUI anstatt Synology Contacts? Oder...
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
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.
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.263
Punkte für Reaktionen
71
Punkte
68
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?
 

nageniil

Benutzer
Mitglied seit
18. Aug 2009
Beiträge
208
Punkte für Reaktionen
4
Punkte
18
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.
 


 

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