Sample code for 30+ languages & platforms
PHP ActiveX

TikTok Shop Get Categories

See more TikTok Shop Examples

An example showing how to use a TikTok Shops access token in an API call.

Chilkat PHP ActiveX Downloads

PHP ActiveX
<?php

$success = 0;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$http = new COM("Chilkat.Http");

// It is assumed we previously obtained an OAuth2 access token.
// This example loads the JSON access token file 
// saved by this example: Get TikTok Shop OAuth2 Access Token
// or refrehsed by this example: Get TikTok Shop Refresh OAuth2 Access Token
$jsonToken = new COM("Chilkat.JsonObject");
$success = $jsonToken->LoadFile('qa_data/tokens/tiktok-shops.json');
if ($success != 1) {
    print 'Failed to load tiktok-shops.json' . "\n";
    exit;
}

// Replace values in all caps with your specific values.
// SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops
$queryParams = new COM("Chilkat.JsonObject");
$queryParams->UpdateString('app_key','APP_KEY');
$queryParams->UpdateString('shop_cipher','SHOP_CIPHER');
$queryParams->UpdateString('shop_id','SHOP_ID');
$dt = new COM("Chilkat.CkDateTime");
$queryParams->UpdateString('timestamp',$dt->getAsUnixTimeStr(0));
$queryParams->UpdateInt('version',202309);

// Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
$ascending = 1;
$caseSensitive = 1;
$queryParams->Sort($ascending,$caseSensitive);

$appSecret = 'APP_SECRET';
$path = '/product/202309/categories';

// Build the StringToSign
$sb = new COM("Chilkat.StringBuilder");
$sb->Append($appSecret);
$sb->Append($path);
$numParams = $queryParams->Size;
$i = 0;
while ($i < $numParams) {
    $sb->Append($queryParams->nameAt($i));
    $sb->Append($queryParams->stringAt($i));
    $i = $i + 1;
}

$sb->Append($appSecret);

$crypt = new COM("Chilkat.Crypt2");
$crypt->HashAlgorithm = 'SHA256';
$crypt->MacAlgorithm = 'HMAC';
$crypt->EncodingMode = 'hex_lower';
$crypt->SetMacKeyString($appSecret);

$sig = $crypt->macStringENC($sb->getAsString());

$queryParams->UpdateString('access_token',$jsonToken->stringOf('data.access_token'));
$queryParams->UpdateString('sign',$sig);

$http->SetRequestHeader('x-tts-access-token',$jsonToken->stringOf('data.access_token'));
$http->SetRequestHeader('content-type','application/json');

$resp = new COM("Chilkat.HttpResponse");
$success = $http->HttpParams('GET','https://open-api.tiktokglobalshop.com/product/202309/categories',$queryParams,$resp);
if ($success == 0) {
    print $http->LastErrorText . "\n";
    exit;
}

$json = new COM("Chilkat.JsonObject");
$resp->GetBodyJson($json);

print $resp->StatusCode . "\n";

$code = $json->IntOf('code');
$message = $json->stringOf('message');
$request_id = $json->stringOf('request_id');
$i = 0;
$count_i = $json->SizeOfArray('data.categories');
while ($i < $count_i) {
    $json->I = $i;
    $id = $json->stringOf('data.categories[i].id');
    $is_leaf = $json->BoolOf('data.categories[i].is_leaf');
    $local_name = $json->stringOf('data.categories[i].local_name');
    print 'local_name: ' . $local_name . "\n";
    $parent_id = $json->stringOf('data.categories[i].parent_id');
    $j = 0;
    $count_j = $json->SizeOfArray('data.categories[i].permission_statuses');
    while ($j < $count_j) {
        $json->J = $j;
        $strVal = $json->stringOf('data.categories[i].permission_statuses[j]');
        $j = $j + 1;
    }

    $i = $i + 1;
}


?>