Navazujeme na článek PHP XML zápis dat do ABRA FlexiBee, který popisoval zápis do adresáře s využitím XML, se strukturovanými daty. V dnešní době se však již XML nahrazuje zápisem JSON. Jak na to ukazuje tento díl návodu.
Připravte si pole s daty adresáře.
$adresar = array( "winstrom" => array ( "adresar" => array( "nazev" => "CharlieB vložený jako JSON", "ulice" => "Lochotínská 18", "mesto" => "Plzeň", "psc" => "301 00", "tel" => "+420 371 124 321", "email" => "podpora@flexibee.eu" ) ) );
Data budete posílat na URL:
// URL with xml data $url = "https://demo.flexibee.eu/c/demo/adresar.json";
Pokud změníte koncovku url z XML na JSON, tak systém ABRA FlexiBee pozná, že mu posílate JSON, a nebude potřebovat další hlavičky.
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($adresar));
Použijte funkci json_encode a jako postfields nastavte pole $adresar.
A to jsou všechny změny, které je potřeba udělat, abyste mohli do ABRA FlexiBee posílat místo XML data ve formátu JSON.
Celý program tedy bude vypadat například takto:
<?php // URL with json data $url = "https://demo.flexibee.eu/c/demo/adresar.json"; // create curl resource $ch = curl_init(); // return content as a string from curl_exec curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // follow redirects (compatibility for changes in FlexiBee) //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); // HTTP authentication curl_setopt($ch, CURLOPT_HTTPAUTH, TRUE); // FlexiBee by default uses Self-Signed certificates //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // for debugging // curl_setopt($ch, CURLOPT_VERBOSE, TRUE); // set username and password curl_setopt($ch, CURLOPT_USERPWD, "winstrom:winstrom"); // set URL curl_setopt($ch, CURLOPT_URL, $url); // set HTTP method curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // json data array $adresar = array( "winstrom" => array ( "adresar" => array( "nazev" => "CharlieB vložený jako JSON", "ulice" => "Lochotínská 18", "mesto" => "Plzeň", "psc" => "301 00", "tel" => "+420 371 124 321", "email" => "podpora@flexibee.eu" ) ) ); // set data curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($adresar)); // execute $output = curl_exec($ch); // FlexiBee return value header("Content-Type: application/json"); print ($output); // close curl resource to free up system resources curl_close($ch); ?>
Ukázka která založí adresář na demo.flexibee.eu
Prověření zda byl záznam opravdu vytvořen