Lieber Entwickler,
ich versuche mit einem clientseitigen PHP Skript einen Kontakt auf der EGW anzulegen.
Das Einloggen klappt.
------ schnipp ----
use GuzzleHttp\Client;
$client = new Client([
// Base URI is used with relative requests
’base_uri’ => ‘https://egw.meiner.de/egroupware’,
// You can set any number of default request options.
‘timeout’ => 2.0,
‘cookies’ => true,
]);
$response1 = $client->request(‘POST’, ‘https://egw.meiner.de/egroupware/login.php’,[
‘form_params’ => [
‘login’ => ‘anonymous’,
‘passwd’ => ‘x1o&’,
‘logindomain’ => ‘default’,
‘account_type’ => ‘u’,
‘passwd_type’ => ‘text’,
‘submitit’ => ’ Anmelden ',
]
]);
----- schnapp —
Probleme bereitet mir der Request zum Erstellen eines NEUEN Kontakts.
—schnipp—
$response = $client->request(‘POST’, ‘https://egw.meiner.de/egroupware/json.php?menuaction=addressbook.etemplate_new.ajax_process_content.etemplate’,[
‘form_params’ => [ “json_data” => ‘
{“request”:{“parameters”:[“addressbook_anonymous_5751a931e36e75.26081587”,
{“n_prefix”:"",“n_given”:"",“n_middle”:"",“n_family”:“NEU5”,“n_suffix”:"",
“upload_photo”:"",“n_fn”:“NEU5 “,“org_name”:””,“tel_work”:"",“org_unit”:"",
“tel_cell”:"",“title”:"",“email”:"",“url”:"",“tabs”:“general”,“role”:"",
“room”:"",“adr_one_street”:"",“assistent”:"",“adr_one_street2”:"",
“tel_assistent”:"",“adr_one_postalcode”:"",“adr_one_locality”:"",“tel_fax”:"",
“adr_one_countrycode”:“DE”,“adr_one_countryname”:“DEUTSCHLAND”,“tel_other”:"",
“adr_one_region”:"",“tel_car”:"",“tid”:“n”,“tel_home”:"",“adr_two_street”:"",
“tel_cell_private”:"",“adr_two_street2”:"",“tel_fax_home”:"",“adr_two_postalcode”:"",
“adr_two_locality”:"",“tel_pager”:"",“adr_two_countrycode”:“DE”,“adr_two_countryname”:“DEUTSCHLAND”,
“adr_two_region”:"",“email_home”:"",“url_home”:"",“cat_id_tree”:[""],“note”:"",“pubkey”:"",
“link_to”:{“to_app”:“addressbook”,“to_id”:0},“link_to_link_entry”:{“id”:null,“app”:“addressbook”,“search”:""},
“link_to_file”:"",“custom_fields”:{},“owner”:“47”,“fileas_type”:“org_name: n_family, n_given”,“button”:{“apply”:true},“change_org”:""},false]}}
’ ]]);
—schnapp—
Damit kann ich zwar den Kontakt einmal anlegen, bei zweiten Aufruf ändert er aber immer genau diesen und legt mir keinen neuen an.
Zudem klappt das nur mit der [etemplate_exec_id] => addressbook_anonymous_5751a931e36e75.26081587 die ich per Chrome/F12 auslese für eine gewisse Zeit (Session?).
Usecase ist das Anlegen von Kontakten, die auch private Felder (Abseits der vcard Spezifikation) enthalten. Die Syntax dafür ist mir klar.
Thx for help,
Hansa