![]() |
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
(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
#include <C_CkHttp.h> #include <C_CkJsonObject.h> #include <C_CkDateTime.h> #include <C_CkStringBuilder.h> #include <C_CkCrypt2.h> #include <C_CkHttpResponse.h> void ChilkatSample(void) { HCkHttp http; HCkJsonObject jsonToken; BOOL success; HCkJsonObject queryParams; HCkDateTime dt; BOOL ascending; BOOL caseSensitive; const char *appSecret; const char *path; HCkStringBuilder sb; int numParams; int i; HCkCrypt2 crypt; const char *sig; HCkHttpResponse resp; HCkJsonObject json; const char *cipher; const char *code_str; const char *id; const char *name; const char *region; const char *seller_type; int code; const char *message; const char *request_id; int count_i; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttp_Create(); // 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 = CkJsonObject_Create(); success = CkJsonObject_LoadFile(jsonToken,"qa_data/tokens/tiktok-shops.json"); if (success != TRUE) { printf("Failed to load tiktok-shops.json\n"); CkHttp_Dispose(http); CkJsonObject_Dispose(jsonToken); return; } queryParams = CkJsonObject_Create(); CkJsonObject_UpdateString(queryParams,"app_key","APP_KEY"); dt = CkDateTime_Create(); CkJsonObject_UpdateString(queryParams,"timestamp",CkDateTime_getAsUnixTimeStr(dt,FALSE)); 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 ascending = TRUE; caseSensitive = TRUE; CkJsonObject_Sort(queryParams,ascending,caseSensitive); appSecret = "APP_SECRET"; path = "/authorization/202309/shops"; // Build the StringToSign sb = CkStringBuilder_Create(); CkStringBuilder_Append(sb,appSecret); CkStringBuilder_Append(sb,path); numParams = CkJsonObject_getSize(queryParams); i = 0; while (i < numParams) { CkStringBuilder_Append(sb,CkJsonObject_nameAt(queryParams,i)); CkStringBuilder_Append(sb,CkJsonObject_stringAt(queryParams,i)); i = i + 1; } CkStringBuilder_Append(sb,appSecret); crypt = CkCrypt2_Create(); CkCrypt2_putHashAlgorithm(crypt,"SHA256"); CkCrypt2_putMacAlgorithm(crypt,"HMAC"); CkCrypt2_putEncodingMode(crypt,"hex_lower"); CkCrypt2_SetMacKeyString(crypt,appSecret); 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 = CkHttp_QuickRequestParams(http,"GET","https://open-api.tiktokglobalshop.com/authorization/202309/shops",queryParams); if (CkHttp_getLastMethodSuccess(http) == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkHttp_Dispose(http); CkJsonObject_Dispose(jsonToken); CkJsonObject_Dispose(queryParams); CkDateTime_Dispose(dt); CkStringBuilder_Dispose(sb); CkCrypt2_Dispose(crypt); return; } json = CkJsonObject_Create(); CkHttpResponse_GetBodyJson(resp,json); printf("%d\n",CkHttpResponse_getStatusCode(resp)); printf("%s\n",CkHttpResponse_bodyStr(resp)); CkHttpResponse_Dispose(resp); // 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" // } code = CkJsonObject_IntOf(json,"code"); message = CkJsonObject_stringOf(json,"message"); request_id = CkJsonObject_stringOf(json,"request_id"); i = 0; count_i = CkJsonObject_SizeOfArray(json,"data.shops"); while (i < count_i) { CkJsonObject_putI(json,i); cipher = CkJsonObject_stringOf(json,"data.shops[i].cipher"); code_str = CkJsonObject_stringOf(json,"data.shops[i].code"); id = CkJsonObject_stringOf(json,"data.shops[i].id"); name = CkJsonObject_stringOf(json,"data.shops[i].name"); region = CkJsonObject_stringOf(json,"data.shops[i].region"); seller_type = CkJsonObject_stringOf(json,"data.shops[i].seller_type"); i = i + 1; } CkHttp_Dispose(http); CkJsonObject_Dispose(jsonToken); CkJsonObject_Dispose(queryParams); CkDateTime_Dispose(dt); CkStringBuilder_Dispose(sb); CkCrypt2_Dispose(crypt); CkJsonObject_Dispose(json); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.