Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem API - WEBAREAL

Zdravím,

máme za úkol vložit nějaké produkty do e-shopu a hodlám to udělat pomocí API. Samotný script si nejspíš dokážu upravit, ale nejde mi ani vzorový kód od webarealu. viz:

Chyby mi to háže:
Notice: Trying to get property 'token' of non-object in D:\xampp\htdocs\stopkovefrezy\api-add-products.php on line 32
Notice: Trying to get property 'token' of non-object in D:\xampp\htdocs\stopkovefrezy\api-add-products.php on line 46
Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\stopkovefrezy\api-add-products.php on line 60

Evidentně je token prázdný. Kde je chyba? Dokáže mi to někdo vysvětlit? Zde je dokumentace k API. https://webareal.docs.apiary.io/#reference/0/order-list/get-order-list

Pokud čti správně, tento script by měl získat objednávky, ne?


$apiServer = 'webareal.cz';
$apiKey = 'vygenerovany_api_klic';
$username = 'mail_k_administraci';
$password = 'heslo';

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://$apiServer/login",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "{\n  \"username\": \"$username\",\n  \"password\": \"$password\"\n}",
    CURLOPT_HTTPHEADER => array(
        "X-Wa-api-token: $apiKey",
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    $jsonResponse = json_decode($response);
    $token = $jsonResponse->token;

    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => "https://$apiServer/orders",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_POSTFIELDS => "",
        CURLOPT_HTTPHEADER => array(
            "Authorization: Bearer $jsonResponse->token",
            "X-Wa-api-token: $apiKey"
        ),
    ));

    $response = curl_exec($curl);
    $err = curl_error($curl);

    curl_close($curl);

    if ($err) {
        echo "cURL Error #:" . $err;
    } else {
        $orders = json_decode($response);
        foreach ($orders as $order) {
            var_dump($order);
        }
    }
}

Předem děkuji za odpověď! ;)

Předmět Autor Datum
Nenašly se žádné odpovědi.

Zpět do poradny Odpovědět na původní otázku Nahoru