Získání API access tokenu

V následující textu předpokládáme, že máte založený partnerský eshop a že jste schválený jako shoptet api partner. URL vašeho partnerského eshopu nechť je např. https://12345.myshoptet.com.

Použité termíny

OAuth access token
Tento řetězec reprezentuje každou jednotlivou instalaci vašeho doplňku na eshopu a je potřeba pro získání API access tokenu. Časově neomezená platnost. Délka 255 znaků.

code
Řetezec posílaný jako GET parametr na vaši url, kterou jste zadali v nastavení doplňku. Časově omezená platnost.

API access token
Řetězec pro přístup do shoptet api. Časově omezená platnost. Délka 255 znaků. API access token získáte zavoláním autorizovaneného požadavku na OAuth server. Autorizaci provedete pomocí OAuth access tokenu, který získáte z procesu instalace vašeho doplňku eshopem.

Získání API access tokenu

Tento proces by měl být nezávislý na procesu instalace a musíte jej volat pokaždé, když nemáte žádný platný API access token.

API access token má časově omezenou platnost a počet aktuálně platných API access tokenů pro jednu instalaci tj. pro jeden OAuth access token je omezen na 5.

Token získáte zavoláním autorizovaného požadavku endpoint OAuth serveru.

Příklad získání API access tokenu v PHP

// URL pro získání API access tokenu, zde jen příklad, konkrétní hodnotu najdete v administraci partnerského eshopu -> propojení -> API partner -> přístup k api
$apiAccessTokenUrl = 'https://12345.myshoptet.com/action/ApiOAuthServer/getAccessToken';

// hodnota uložená z procesu instalace, pro každý eshop unikátní
$OauthAccessToken = '05bvguwz7zp10s6cj37csrwpfl4kfkxa6ojmophp6fabzkspi821g2yso0x4bqktwuouifak9sl6yssvpt9cwidgvt21p5czb108rlo94krwumlgal3na9ky7qdaq0jfkt180omfahbsxtoemfwstjhrf98y3b7qpytbkm53ic99ghpiqdkqb08j6gearo4kw9zeavehjvndabyoneili9qcs65tnsg9cpror28i725394tkf4rxxp62cq46xd9'

// OAuth access token přidáme do hlavičky požadavku
$curl = curl_init($apiAccessTokenUrl);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $OauthAccessToken]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($curl);
curl_close($curl);

V $response je ‚access_token‘ což je API access token pro přístup do shoptet api.

{"access_token":"fltqc2nn5zg8y5h69jx8976ltwi2p1qgkazjw6srsllcdqhacxyutcdu35myjf6ybyatje3k1p25j0l252rpntttxobszne3nbkt2s6y8yqgt21cy43lsyc7y41m31qefikan1fjow7kwy0imlafls2n87h9wihxvrjpqoa7boo7qg2bxwowic5yauhw03ya2v7op1tzbc5hpwiuq6xhurzh3empv4v2vkxz934c2xzrn113p7dkejmrnrni7oa","expires_in":1800}
$response = json_decode($response, TRUE);
$apiAccessToken = $response['access_token'];

Získaný API access token použijete pro volání endpointů shoptet API. Návod jak sestavit požadavek na shoptet API a seznam ednpointů viz dokumentace na apiary.

Doporučujeme si spolu s tokenem uložit i čas jeho vypršení a ten kontrolovat. V případě, že je čas platnosti překročen, vyžádajte si nový API access token. Alternativně můžete při volání API odchytávat chybovou hlášku invalid-token a opakovat request po vyžádání nového tokenu. Po expiraci tokenu obdržíte návratový kód 401 Unauthorized, v těle

{
    "data": null,
    "errors": [{
        "errorCode": "invalid-token",
        "message": "Invalid access token h2uuqz3pdz8v31llo5gnomhcbr1g5gwpuczrl2bbcd7arvrxtmf68gthu3ga9vwx1nlmmf889pyltrb7iu1yx6861pheh7ykeuotvrs68rb77br8xuigps8o26fbls5c0rz6nhfd1hwdbnxfdps6ad0opxkn7virmadsgeoljn7d5rjlcdllhn383w9sh4e8o1233wp6p7s01zosmdp17hrzx59mjiylvovljhrah8dagjrzr0y8rkoaz4ytd28.",
        "instance": "access-token"
    }]
}
Facebook
Twitter