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
(Delphi ActiveX) 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.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var http: TChilkatHttp; jsonToken: TChilkatJsonObject; success: Integer; queryParams: TChilkatJsonObject; dt: TCkDateTime; ascending: Integer; caseSensitive: Integer; appSecret: WideString; path: WideString; sb: TChilkatStringBuilder; numParams: Integer; i: Integer; crypt: TChilkatCrypt2; sig: WideString; resp: IChilkatHttpResponse; json: TChilkatJsonObject; id: WideString; is_leaf: Integer; local_name: WideString; parent_id: WideString; j: Integer; count_j: Integer; strVal: WideString; code: Integer; message: WideString; request_id: WideString; count_i: Integer; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := TChilkatHttp.Create(Self); // 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 := TChilkatJsonObject.Create(Self); success := jsonToken.LoadFile('qa_data/tokens/tiktok-shops.json'); if (success <> 1) then begin Memo1.Lines.Add('Failed to load tiktok-shops.json'); Exit; end; // Replace values in all caps with your specific values. // SHOP_CIPHER and SHOP_ID are returned from this example: Get Authorized Shops queryParams := TChilkatJsonObject.Create(Self); queryParams.UpdateString('app_key','APP_KEY'); queryParams.UpdateString('shop_cipher','SHOP_CIPHER'); queryParams.UpdateString('shop_id','SHOP_ID'); dt := TCkDateTime.Create(Self); queryParams.UpdateString('timestamp',dt.GetAsUnixTimeStr(0)); 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 := 1; caseSensitive := 1; queryParams.Sort(ascending,caseSensitive); appSecret := 'APP_SECRET'; path := '/product/202309/categories'; // Build the StringToSign sb := TChilkatStringBuilder.Create(Self); sb.Append(appSecret); sb.Append(path); numParams := queryParams.Size; i := 0; while i < numParams do begin sb.Append(queryParams.NameAt(i)); sb.Append(queryParams.StringAt(i)); i := i + 1; end; sb.Append(appSecret); crypt := TChilkatCrypt2.Create(Self); crypt.HashAlgorithm := 'SHA256'; crypt.MacAlgorithm := 'HMAC'; crypt.EncodingMode := '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.ControlInterface); if (http.LastMethodSuccess = 0) then begin Memo1.Lines.Add(http.LastErrorText); Exit; end; json := TChilkatJsonObject.Create(Self); resp.GetBodyJson(json.ControlInterface); Memo1.Lines.Add(IntToStr(resp.StatusCode)); code := json.IntOf('code'); message := json.StringOf('message'); request_id := json.StringOf('request_id'); i := 0; count_i := json.SizeOfArray('data.categories'); while i < count_i do begin json.I := 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'); Memo1.Lines.Add('local_name: ' + local_name); parent_id := json.StringOf('data.categories[i].parent_id'); j := 0; count_j := json.SizeOfArray('data.categories[i].permission_statuses'); while j < count_j do begin json.J := j; strVal := json.StringOf('data.categories[i].permission_statuses[j]'); j := j + 1; end; i := i + 1; end; end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.