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
(Go) 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.
// This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := chilkat.NewHttp() // 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.NewJsonObject() success := jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json") if success != true { fmt.Println("Failed to load tiktok-shops.json") http.DisposeHttp() jsonToken.DisposeJsonObject() return } // Replace values in all caps with your specific values. // SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops queryParams := chilkat.NewJsonObject() queryParams.UpdateString("app_key","APP_KEY") queryParams.UpdateString("shop_cipher","SHOP_CIPHER") queryParams.UpdateString("shop_id","SHOP_ID") dt := chilkat.NewCkDateTime() queryParams.UpdateString("timestamp",*dt.GetAsUnixTimeStr(false)) 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 := true caseSensitive := true queryParams.Sort(ascending,caseSensitive) appSecret := "APP_SECRET" path := "/product/202309/categories" // Build the StringToSign sb := chilkat.NewStringBuilder() sb.Append(appSecret) sb.Append(path) numParams := queryParams.Size() i := 0 for i < numParams { sb.Append(*queryParams.NameAt(i)) sb.Append(*queryParams.StringAt(i)) i = i + 1 } sb.Append(appSecret) crypt := chilkat.NewCrypt2() crypt.SetHashAlgorithm("SHA256") crypt.SetMacAlgorithm("HMAC") crypt.SetEncodingMode("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 := http.QuickRequestParams("GET","https://open-api.tiktokglobalshop.com/product/202309/categories",queryParams) if http.LastMethodSuccess() == false { fmt.Println(http.LastErrorText()) http.DisposeHttp() jsonToken.DisposeJsonObject() queryParams.DisposeJsonObject() dt.DisposeCkDateTime() sb.DisposeStringBuilder() crypt.DisposeCrypt2() return } json := chilkat.NewJsonObject() resp.GetBodyJson(json) fmt.Println(resp.StatusCode()) resp.DisposeHttpResponse() var id *string = new(string) var is_leaf bool var local_name *string = new(string) parent_ var id *string = new(string) var j int var count_j int var strVal *string = new(string) code := json.IntOf("code") message := json.StringOf("message") request_id := json.StringOf("request_id") i = 0 count_i := json.SizeOfArray("data.categories") for i < count_i { json.SetI(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") fmt.Println("local_name: ", *local_name) parent_id = json.StringOf("data.categories[i].parent_id") j = 0 count_j = json.SizeOfArray("data.categories[i].permission_statuses") for j < count_j { json.SetJ(j) strVal = json.StringOf("data.categories[i].permission_statuses[j]") j = j + 1 } i = i + 1 } http.DisposeHttp() jsonToken.DisposeJsonObject() queryParams.DisposeJsonObject() dt.DisposeCkDateTime() sb.DisposeStringBuilder() crypt.DisposeCrypt2() json.DisposeJsonObject() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.