Gambio API

Thema wurde von guenter_reit, 24. April 2017 erstellt.

  1. guenter_reit

    guenter_reit Erfahrener Benutzer

    Registriert seit:
    20. April 2017
    Beiträge:
    49
    Danke erhalten:
    2
    Danke vergeben:
    13
    Hallo Zusammen,

    möchte zur automatisierten Artikel-Generierung aus großer Datenbank die Gambio-API nutzen, da ich durch die Unmengen von untereinander abhängigen Tabellen bezüglich der Produkte, so gut wie gar nicht durchblicke.

    Mein erster Geh-Versuch mit der API ist die Session-Abfrage, bekomme aber nur für mich nichtssagende Fehlermeldung. Unten ist mein PHP-Code und die XML-Datei.

    Vielleicht hat jemand ein paar Tips für mich, was ich falsch mache.

    LG Gregor

    PHP (getSession.php):

    <?php

    $sessionObjekt = new gambioGetSession();
    $sessionObjekt->callGambio();
    $sessionObjekt->printResult();

    class gambioGetSession
    {
    private $apiUrl = "http://kiosk-king.de/request_port.php?module=XMLConnect&api_version=1.0";

    private function _getRequestBody()
    {
    $requestXmlBody = file_get_contents('getSession.xml');
    return $requestXmlBody;
    }


    public function callGambio()
    {
    $connection = curl_init();
    curl_setopt($connection, CURLOPT_URL, $this->apiUrl);

    curl_setopt($connection, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
    curl_setopt($connection, CURLOPT_POST, 1);

    $requestBody = $this->_getRequestBody();

    curl_setopt($connection, CURLOPT_POSTFIELDS, $requestBody);
    curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
    $responseXml = curl_exec($connection);
    curl_close($connection);
    $this->_responseXml = $responseXml;
    var_dump($responseXml);
    }

    public function printResult()
    {
    //Xml string is parsed and creates a DOM Document object
    $responseDoc = new DomDocument();
    $responseDoc->loadXML($this->_responseXml);

    //get any error nodes
    $errors = $responseDoc->getElementsByTagName('request');

    //if there are error nodes
    if($errors->length > 0)
    {
    $message = $errors->item(0)->getElementsByTagName('errormessage');
    var_dump($message);
    } else {
    //no errors
    //get results nodes
    $responses = $responseDoc->getElementsByTagName("login");
    foreach ($responses as $response) {

    $acks = $response->getElementsByTagName("session_key");
    $ack = $acks->item(0)->nodeValue;
    echo "<h1>SessionID = $ack </h1><BR />\n";
    }
    }
    }
    }
    ?>


    XML (getSession.xml):

    <?xml version="1.0" encoding="UTF-8"?>
    <GambioXML>
    <general>
    <function>login</function>
    </general>
    <login>
    <user>gregor.mannek@comidos.de</user>
    <password>******</password>
    </login>
    </GambioXML>
     
  2. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.095
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Hier is die Entwickler Doku (Link nur für registrierte Nutzer sichtbar.)
     
  3. Daniel W. (Gambio)

    Daniel W. (Gambio) Gambio GmbH

    Registriert seit:
    17. Juli 2012
    Beiträge:
    289
    Danke erhalten:
    108
    Danke vergeben:
    85
    Poste doch mal deine nichtssagende Fehlermeldung... Vielleicht hast du ja Glück ;)
     
  4. guenter_reit

    guenter_reit Erfahrener Benutzer

    Registriert seit:
    20. April 2017
    Beiträge:
    49
    Danke erhalten:
    2
    Danke vergeben:
    13
    Oh, die Fehlermeldung hab ich vergessen, SORRY:

    <![CDATA[ErrorException: Undefined index: gambio_api_xml in D:\domains\kiosk-king.de\httpdocs\system\classes\gambio_xml\XMLConnectAjaxHandler.inc.php:88 Stack trace: #0 D:\domains\kiosk-king.de\httpdocs\system\classes\gambio_xml\XMLConnectAjaxHandler.inc.php(88): custom_error_handler(8, 'Undefined index...', 'D:\\domains\\kios...', 88, Array) #1 D:\domains\kiosk-king.de\httpdocs\system\core\RequestRouter.inc.php(93): XMLConnectAjaxHandler->proceed() #2 D:\domains\kiosk-king.de\httpdocs\request_port.php(70): RequestRouter->proceed('XMLConnect') #3 {main}]]>
     
  5. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Kurzer Einwand:

    Wir haben mehrere APIs für den gleichen Zweck, du hast die XML-API am Wickel, das ist die ältere Variante. Wir haben auch eine REST-API, die ist einfacher, moderner und die Zukunft. Der Noch-Haken: Darüber kann man aktuell noch keine Variantenartikel schreiben, das fehlt noch. Wenn Variantenartikel bei dir kein Kriterium sein sollten, solltest du zu REST wechseln.
     
  6. guenter_reit

    guenter_reit Erfahrener Benutzer

    Registriert seit:
    20. April 2017
    Beiträge:
    49
    Danke erhalten:
    2
    Danke vergeben:
    13
    Habe bis jetzt nur Erfahrung mit XML-Api's... :-(
     
  7. guenter_reit

    guenter_reit Erfahrener Benutzer

    Registriert seit:
    20. April 2017
    Beiträge:
    49
    Danke erhalten:
    2
    Danke vergeben:
    13
    Da ich noch nicht so viel Erfahrung mit PHP habe, würde ich mich freuen, wenn jemand ein paar Code-Zeilen Beispiel für mich hätte, wie ich einen CALL an die REST-Api machen kann !?
     
  8. Daniel W. (Gambio)

    Daniel W. (Gambio) Gambio GmbH

    Registriert seit:
    17. Juli 2012
    Beiträge:
    289
    Danke erhalten:
    108
    Danke vergeben:
    85