Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) TikTok Shop Get CategoriesSee more TikTok Shop ExamplesAn example showing how to use a TikTok Shops access token in an API call. IMPORTANT: This example requires a pre-release for the next version of Chilkat after the current v9.5.0.99 release. Contact info@chilkatsoft.com if you wish to get a pre-release. However, pre-releases of .NET Core (hosted on NuGet) and Node.js will not be possible.
use chilkat(); # 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.. # Note: The Sort method is added in Chilkat v9.5.0.100 $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 is a HttpResponse $resp = $http->QuickRequestParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",$queryParams); if ($http->get_LastMethodSuccess() == 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; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.