Perl
Perl
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 Perl Downloads
use chilkat();
$success = 0;
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = chilkat::CkHttp->new();
# 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 = chilkat::CkJsonObject->new();
$success = $jsonToken->LoadFile("qa_data/tokens/tiktok-shops.json");
if ($success != 1) {
print "Failed to load tiktok-shops.json" . "\r\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 = chilkat::CkJsonObject->new();
$queryParams->UpdateString("app_key","APP_KEY");
$queryParams->UpdateString("shop_cipher","SHOP_CIPHER");
$queryParams->UpdateString("shop_id","SHOP_ID");
$dt = chilkat::CkDateTime->new();
$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 = chilkat::CkStringBuilder->new();
$sb->Append($appSecret);
$sb->Append($path);
$numParams = $queryParams->get_Size();
$i = 0;
while ($i < $numParams) {
$sb->Append($queryParams->nameAt($i));
$sb->Append($queryParams->stringAt($i));
$i = $i + 1;
}
$sb->Append($appSecret);
$crypt = chilkat::CkCrypt2->new();
$crypt->put_HashAlgorithm("SHA256");
$crypt->put_MacAlgorithm("HMAC");
$crypt->put_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 = chilkat::CkHttpResponse->new();
$success = $http->HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",$queryParams,$resp);
if ($success == 0) {
print $http->lastErrorText() . "\r\n";
exit;
}
$json = chilkat::CkJsonObject->new();
$resp->GetBodyJson($json);
print $resp->get_StatusCode() . "\r\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->put_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 . "\r\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->put_J($j);
$strVal = $json->stringOf("data.categories[i].permission_statuses[j]");
$j = $j + 1;
}
$i = $i + 1;
}