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
(Objective-C) 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.
#import <CkoHttp.h> #import <CkoJsonObject.h> #import <CkoDateTime.h> #import <NSString.h> #import <CkoStringBuilder.h> #import <CkoCrypt2.h> #import <CkoHttpResponse.h> // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoHttp *http = [[CkoHttp alloc] init]; // 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 CkoJsonObject *jsonToken = [[CkoJsonObject alloc] init]; BOOL success = [jsonToken LoadFile: @"qa_data/tokens/tiktok-shops.json"]; if (success != YES) { NSLog(@"%@",@"Failed to load tiktok-shops.json"); return; } // Replace values in all caps with your specific values. // SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops CkoJsonObject *queryParams = [[CkoJsonObject alloc] init]; [queryParams UpdateString: @"app_key" value: @"APP_KEY"]; [queryParams UpdateString: @"shop_cipher" value: @"SHOP_CIPHER"]; [queryParams UpdateString: @"shop_id" value: @"SHOP_ID"]; CkoDateTime *dt = [[CkoDateTime alloc] init]; [queryParams UpdateString: @"timestamp" value: [dt GetAsUnixTimeStr: NO]]; [queryParams UpdateInt: @"version" value: [NSNumber numberWithInt: 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 BOOL ascending = YES; BOOL caseSensitive = YES; [queryParams Sort: ascending caseSensitive: caseSensitive]; NSString *appSecret = @"APP_SECRET"; NSString *path = @"/product/202309/categories"; // Build the StringToSign CkoStringBuilder *sb = [[CkoStringBuilder alloc] init]; [sb Append: appSecret]; [sb Append: path]; int numParams = [queryParams.Size intValue]; int i = 0; while (i < numParams) { [sb Append: [queryParams NameAt: [NSNumber numberWithInt: i]]]; [sb Append: [queryParams StringAt: [NSNumber numberWithInt: i]]]; i = i + 1; } [sb Append: appSecret]; CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init]; crypt.HashAlgorithm = @"SHA256"; crypt.MacAlgorithm = @"HMAC"; crypt.EncodingMode = @"hex_lower"; [crypt SetMacKeyString: appSecret]; NSString *sig = [crypt MacStringENC: [sb GetAsString]]; [queryParams UpdateString: @"access_token" value: [jsonToken StringOf: @"data.access_token"]]; [queryParams UpdateString: @"sign" value: sig]; [http SetRequestHeader: @"x-tts-access-token" value: [jsonToken StringOf: @"data.access_token"]]; [http SetRequestHeader: @"content-type" value: @"application/json"]; CkoHttpResponse *resp = [http QuickRequestParams: @"GET" url: @"https://open-api.tiktokglobalshop.com/product/202309/categories" json: queryParams]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [resp GetBodyJson: json]; NSLog(@"%d",[resp.StatusCode intValue]); NSString *id = 0; BOOL is_leaf; NSString *local_name = 0; NSString *parent_id = 0; int j; int count_j; NSString *strVal = 0; int code = [[json IntOf: @"code"] intValue]; NSString *message = [json StringOf: @"message"]; NSString *request_id = [json StringOf: @"request_id"]; i = 0; int count_i = [[json SizeOfArray: @"data.categories"] intValue]; while (i < count_i) { json.I = [NSNumber numberWithInt: 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"]; NSLog(@"%@%@",@"local_name: ",local_name); parent_id = [json StringOf: @"data.categories[i].parent_id"]; j = 0; count_j = [[json SizeOfArray: @"data.categories[i].permission_statuses"] intValue]; while (j < count_j) { json.J = [NSNumber numberWithInt: j]; strVal = [json StringOf: @"data.categories[i].permission_statuses[j]"]; j = j + 1; } i = i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.