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
(Tcl) 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.
load ./chilkat.dll # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] # 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 set jsonToken [new_CkJsonObject] set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/tiktok-shops.json"] if {$success != 1} then { puts "Failed to load tiktok-shops.json" delete_CkHttp $http delete_CkJsonObject $jsonToken exit } # Replace values in all caps with your specific values. # SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops set queryParams [new_CkJsonObject] CkJsonObject_UpdateString $queryParams "app_key" "APP_KEY" CkJsonObject_UpdateString $queryParams "shop_cipher" "SHOP_CIPHER" CkJsonObject_UpdateString $queryParams "shop_id" "SHOP_ID" set dt [new_CkDateTime] CkJsonObject_UpdateString $queryParams "timestamp" [CkDateTime_getAsUnixTimeStr $dt 0] CkJsonObject_UpdateInt $queryParams "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 set ascending 1 set caseSensitive 1 CkJsonObject_Sort $queryParams $ascending $caseSensitive set appSecret "APP_SECRET" set path "/product/202309/categories" # Build the StringToSign set sb [new_CkStringBuilder] CkStringBuilder_Append $sb $appSecret CkStringBuilder_Append $sb $path set numParams [CkJsonObject_get_Size $queryParams] set i 0 while {$i < $numParams} { CkStringBuilder_Append $sb [CkJsonObject_nameAt $queryParams $i] CkStringBuilder_Append $sb [CkJsonObject_stringAt $queryParams $i] set i [expr $i + 1] } CkStringBuilder_Append $sb $appSecret set crypt [new_CkCrypt2] CkCrypt2_put_HashAlgorithm $crypt "SHA256" CkCrypt2_put_MacAlgorithm $crypt "HMAC" CkCrypt2_put_EncodingMode $crypt "hex_lower" CkCrypt2_SetMacKeyString $crypt $appSecret set sig [CkCrypt2_macStringENC $crypt [CkStringBuilder_getAsString $sb]] CkJsonObject_UpdateString $queryParams "access_token" [CkJsonObject_stringOf $jsonToken "data.access_token"] CkJsonObject_UpdateString $queryParams "sign" $sig CkHttp_SetRequestHeader $http "x-tts-access-token" [CkJsonObject_stringOf $jsonToken "data.access_token"] CkHttp_SetRequestHeader $http "content-type" "application/json" # resp is a CkHttpResponse set resp [CkHttp_QuickRequestParams $http "GET" "https://open-api.tiktokglobalshop.com/product/202309/categories" $queryParams] if {[CkHttp_get_LastMethodSuccess $http] == 0} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkJsonObject $queryParams delete_CkDateTime $dt delete_CkStringBuilder $sb delete_CkCrypt2 $crypt exit } set json [new_CkJsonObject] CkHttpResponse_GetBodyJson $resp $json puts [CkHttpResponse_get_StatusCode $resp] delete_CkHttpResponse $resp set code [CkJsonObject_IntOf $json "code"] set message [CkJsonObject_stringOf $json "message"] set request_id [CkJsonObject_stringOf $json "request_id"] set i 0 set count_i [CkJsonObject_SizeOfArray $json "data.categories"] while {$i < $count_i} { CkJsonObject_put_I $json $i set id [CkJsonObject_stringOf $json "data.categories[i].id"] set is_leaf [CkJsonObject_BoolOf $json "data.categories[i].is_leaf"] set local_name [CkJsonObject_stringOf $json "data.categories[i].local_name"] puts "local_name: $local_name" set parent_id [CkJsonObject_stringOf $json "data.categories[i].parent_id"] set j 0 set count_j [CkJsonObject_SizeOfArray $json "data.categories[i].permission_statuses"] while {$j < $count_j} { CkJsonObject_put_J $json $j set strVal [CkJsonObject_stringOf $json "data.categories[i].permission_statuses[j]"] set j [expr $j + 1] } set i [expr $i + 1] } delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkJsonObject $queryParams delete_CkDateTime $dt delete_CkStringBuilder $sb delete_CkCrypt2 $crypt delete_CkJsonObject $json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.