FlexiBee API - PHP JSON zápis dat do FlexiBee

Minule jsem popisoval zápis adresáře do FlexiBee s využitím XML se strukturovanými daty. Většinou se dnes již ale XML nepoužívá. Ve většině použití ho nahrazuje JSON. Takže popíši i zápis JSON dat do FlexiBee API.

Opět navazuji na předchozí článek. Místo XML ale použijeme JSON data.

Připravím 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 budeme tentokrát posílat na jiné URL.

// URL with xml data $url = "https://demo.flexibee.eu/c/demo/adresar.json";
Pokud změníme koncovku url z XML na JSON tak FlexiBee pozná, že mu budeme posílat JSON a nebude potřebovat další hlavičky.

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($adresar));
Použijeme funkci json_encode a jako postfields nastavíme pole $adresar.

A to jsou všechny změny, které je potřeba udělat abychom mohli do 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

ABRA FlexiBee, REST API, JSON

- (28. 7. 2017)
Kája z Norska
Kája z Norska

Jsem programátor, horolezec a tak trochu FlexiBee fanatik :-).
Na CharlieBlogu sepisuji své nápady a poznatky už od roku 2006.