Nejdříve ale musíme ve FlexiBee zajistit několik věcí.
1. Je dobré mít pro API připojení samostatného uživatele. U tohoto uživatele postačí nastavit Typ uživatele na REST API. Nepůjde se s ním tedy přihlásit přes desktopového klienta ani přes webové rozhraní. To ale nevadí, protože se s ním máme připojovat jen přes API.
Role uživatele pak závisí jen na tom, jaké evidence má mít uživatel přístupné. Například uživatel pro propojení s e-shopem určitě nemusí být ADMIN. Ale bude mu bohatě postačovat role UŽIVATEL.
2. Vaše licence musí podporovat REST API. V současné době je REST API pro čtení součástí každé licence FlexiBee. Pokud budete potřebovat do FlexiBee zapisovat data tak je nutná licence s REST API pro zápis. Tento modul je doplatkový ale automatizace, která se s jeho pomocí nechá zařídit mnohokrát převýší počáteční investici.
Také musíme zjistit adresu a port serveru na který se budeme připojovat a identifikátor firmy.
Adresu a port serveru je možné zjistit v desktopového aplikaci ve správě datových zdrojů nebo po připojení do firmy v dialogu O aplikaci FlexiBee (Nápověda - O aplikaci FlexiBee) na záložce Detaily o aplikaci v poli Adresa centrálního serveru (bude se v něm vyskytovat například něco jako demo.flexibee.eu:5434).
Identifikátor firmy je možné zjistit pouze přes webové rozhraní. Na adrese server:port/c (např. demo.flexibee.eu/c) je možné nechat si vypsat firmy, které má uživatel ve FlexiBee přístupné. Po kliknutí na kteroukoliv z nich se připojíte do této firmy a URL se změní na server:port/c/identifikátor (např. demo.flexibee.eu/c/demo). Identifikátor je tedy konec URL adresy od posledního lomítka (na demo příklade tedy demo).
Nyní již máme vše potřebné nastaveno a zjištěno a můžeme začít s programováním.
<?php
// URL with xml data
$url = "https://demo.flexibee.eu/c/demo/adresar.xml";
// 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);
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 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, "GET");
// execute
$output = curl_exec($ch);
$info = curl_getinfo($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200
&& curl_getinfo($ch, CURLINFO_HTTP_CODE) != 201) {
printf ("Při operaci nastala chyba (HTTP %d): %sn",
curl_getinfo($ch, CURLINFO_HTTP_CODE), $output);
}
// close curl resource to free up system resources
curl_close($ch);
// display data
libxml_use_internal_errors(true);
$data = simplexml_load_string($output);
if (!$data) {
echo "Error loading XML";
foreach(libxml_get_errors() as $error) {
echo " ", $error->message;
}
} else {
echo "<table>";
foreach($data->children() as $radek) {
echo "<tr><td>";
echo $radek->kod;
echo "</td><td>";
echo $radek->nazev;
echo "</td></tr>";
}
echo "</table>";
}
?>
Program se připojí k serveru demo.flexibee.eu. Pomocí http autentizace se přihlásí jako uživatel winstrom s heslem winstrom do firmy s identifikátorem demo. Z této firmy stáhne XML soubor adresáře a vypíše ho jako tabulku ve které první sloupec bude zkratka firmy a druhý název firmy.
Při chybě během načítání vypíše chybu "Při operaci nastala chyba" a kód chyby.
Ukázka výstupu
Jedná se o nejjednodušší způsob jak ze své vlastní PHP aplikace přistupovat k API FlexiBee a získávat z něj data.