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 Authorized ShopsSee more TikTok Shop ExamplesAn example showing how to get the authorized shops in the TikTok Shops API. 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. For more information, see https://partner.tiktokshop.com/docv2/page/6507ead7b99d5302be949ba9?external_id=6507ead7b99d5302be949ba9
#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; } CkoJsonObject *queryParams = [[CkoJsonObject alloc] init]; [queryParams UpdateString: @"app_key" value: @"APP_KEY"]; 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 = @"/authorization/202309/shops"; // 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/authorization/202309/shops" json: queryParams]; if (http.LastMethodSuccess == NO) { NSLog(@"%@",http.LastErrorText); return; } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [resp GetBodyJson: json]; NSLog(@"%d",[resp.StatusCode intValue]); NSLog(@"%@",resp.BodyStr); // Sample JSON response... // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // { // "code": 0, // "data": { // "shops": [ // { // "cipher": "GCP_XF90igAAAABh00qsWgtvOiGFNqyubMt3", // "code": "CNGBCBA4LLU8", // "id": "7000714532876273420", // "name": "Maomao beauty shop", // "region": "GB", // "seller_type": "CROSS_BORDER" // } // ] // }, // "message": "Success", // "request_id": "202203070749000101890810281E8C70B7" // } NSString *cipher = 0; NSString *code_str = 0; NSString *id = 0; NSString *name = 0; NSString *region = 0; NSString *seller_type = 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.shops"] intValue]; while (i < count_i) { json.I = [NSNumber numberWithInt: i]; cipher = [json StringOf: @"data.shops[i].cipher"]; code_str = [json StringOf: @"data.shops[i].code"]; id = [json StringOf: @"data.shops[i].id"]; name = [json StringOf: @"data.shops[i].name"]; region = [json StringOf: @"data.shops[i].region"]; seller_type = [json StringOf: @"data.shops[i].seller_type"]; i = i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.