Objective-C
Objective-C
TikTok Shop Get Authorized Shops
See more TikTok Shop Examples
An example showing how to get the authorized shops in the TikTok Shops API.Chilkat Objective-C Downloads
#import <CkoHttp.h>
#import <CkoJsonObject.h>
#import <CkoDateTime.h>
#import <NSString.h>
#import <CkoStringBuilder.h>
#import <CkoCrypt2.h>
#import <CkoHttpResponse.h>
BOOL success = NO;
// 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];
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..
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 = [[CkoHttpResponse alloc] init];
success = [http HttpParams: @"GET" url: @"https://open-api.tiktokglobalshop.com/authorization/202309/shops" json: queryParams response: resp];
if (success == 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;
}