![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) TikTok Shop Get CategoriesSee more TikTok Shop ExamplesAn example showing how to use a TikTok Shops access token in an API call.Note: This example requires Chilkat v11.0.0 or greater.
LOCAL lnSuccess LOCAL loHttp LOCAL loJsonToken LOCAL loQueryParams LOCAL loDt LOCAL lnAscending LOCAL lnCaseSensitive LOCAL lcAppSecret LOCAL lcPath LOCAL loSb LOCAL lnNumParams LOCAL i LOCAL loCrypt LOCAL lcSig LOCAL loResp LOCAL loJson LOCAL lcId LOCAL lnIs_leaf LOCAL lcLocal_name LOCAL lcParent_id LOCAL j LOCAL lnCount_j LOCAL lcStrVal LOCAL lnCode LOCAL lcMessage LOCAL lcRequest_id LOCAL lnCount_i lnSuccess = 0 * This example assumes the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. loHttp = CreateObject('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 loJsonToken = CreateObject('Chilkat.JsonObject') lnSuccess = loJsonToken.LoadFile("qa_data/tokens/tiktok-shops.json") IF (lnSuccess <> 1) THEN ? "Failed to load tiktok-shops.json" RELEASE loHttp RELEASE loJsonToken CANCEL ENDIF * Replace values in all caps with your specific values. * SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops loQueryParams = CreateObject('Chilkat.JsonObject') loQueryParams.UpdateString("app_key","APP_KEY") loQueryParams.UpdateString("shop_cipher","SHOP_CIPHER") loQueryParams.UpdateString("shop_id","SHOP_ID") loDt = CreateObject('Chilkat.CkDateTime') loQueryParams.UpdateString("timestamp",loDt.GetAsUnixTimeStr(0)) loQueryParams.UpdateInt("version",202309) * Sort the JSON members by member name, in ascending order (A-Z), case sensitive.. lnAscending = 1 lnCaseSensitive = 1 loQueryParams.Sort(lnAscending,lnCaseSensitive) lcAppSecret = "APP_SECRET" lcPath = "/product/202309/categories" * Build the StringToSign loSb = CreateObject('Chilkat.StringBuilder') loSb.Append(lcAppSecret) loSb.Append(lcPath) lnNumParams = loQueryParams.Size i = 0 DO WHILE i < lnNumParams loSb.Append(loQueryParams.NameAt(i)) loSb.Append(loQueryParams.StringAt(i)) i = i + 1 ENDDO loSb.Append(lcAppSecret) loCrypt = CreateObject('Chilkat.Crypt2') loCrypt.HashAlgorithm = "SHA256" loCrypt.MacAlgorithm = "HMAC" loCrypt.EncodingMode = "hex_lower" loCrypt.SetMacKeyString(lcAppSecret) lcSig = loCrypt.MacStringENC(loSb.GetAsString()) loQueryParams.UpdateString("access_token",loJsonToken.StringOf("data.access_token")) loQueryParams.UpdateString("sign",lcSig) loHttp.SetRequestHeader("x-tts-access-token",loJsonToken.StringOf("data.access_token")) loHttp.SetRequestHeader("content-type","application/json") loResp = CreateObject('Chilkat.HttpResponse') lnSuccess = loHttp.HttpParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",loQueryParams,loResp) IF (lnSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loJsonToken RELEASE loQueryParams RELEASE loDt RELEASE loSb RELEASE loCrypt RELEASE loResp CANCEL ENDIF loJson = CreateObject('Chilkat.JsonObject') loResp.GetBodyJson(loJson) ? STR(loResp.StatusCode) lnCode = loJson.IntOf("code") lcMessage = loJson.StringOf("message") lcRequest_id = loJson.StringOf("request_id") i = 0 lnCount_i = loJson.SizeOfArray("data.categories") DO WHILE i < lnCount_i loJson.I = i lcId = loJson.StringOf("data.categories[i].id") lnIs_leaf = loJson.BoolOf("data.categories[i].is_leaf") lcLocal_name = loJson.StringOf("data.categories[i].local_name") ? "local_name: " + lcLocal_name lcParent_id = loJson.StringOf("data.categories[i].parent_id") j = 0 lnCount_j = loJson.SizeOfArray("data.categories[i].permission_statuses") DO WHILE j < lnCount_j loJson.J = j lcStrVal = loJson.StringOf("data.categories[i].permission_statuses[j]") j = j + 1 ENDDO i = i + 1 ENDDO RELEASE loHttp RELEASE loJsonToken RELEASE loQueryParams RELEASE loDt RELEASE loSb RELEASE loCrypt RELEASE loResp RELEASE loJson |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.