Navazujeme na článek PHP XML zápis dat do ABRA Flexi, 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" => "podporaflexi@abra.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 Flexi 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 Flexi 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

Našli jste odpověď?