Swift
Swift
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 Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
// 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
let jsonToken = CkoJsonObject()!
success = jsonToken.loadFile(path: "qa_data/tokens/tiktok-shops.json")
if success != true {
print("Failed to load tiktok-shops.json")
return
}
let queryParams = CkoJsonObject()!
queryParams.updateString(jsonPath: "app_key", value: "APP_KEY")
let dt = CkoDateTime()!
queryParams.updateString(jsonPath: "timestamp", value: dt.get(asUnixTimeStr: false))
queryParams.updateInt(jsonPath: "version", value: 202309)
// Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
var ascending: Bool = true
var caseSensitive: Bool = true
queryParams.sort(ascending: ascending, caseSensitive: caseSensitive)
var appSecret: String? = "APP_SECRET"
var path: String? = "/authorization/202309/shops"
// Build the StringToSign
let sb = CkoStringBuilder()!
sb.append(value: appSecret)
sb.append(value: path)
var numParams: Int = queryParams.size.intValue
var i: Int = 0
while i < numParams {
sb.append(value: queryParams.name(at: i))
sb.append(value: queryParams.string(at: i))
i = i + 1
}
sb.append(value: appSecret)
let crypt = CkoCrypt2()!
crypt.hashAlgorithm = "SHA256"
crypt.macAlgorithm = "HMAC"
crypt.encodingMode = "hex_lower"
crypt.setMacKeyString(key: appSecret)
var sig: String? = crypt.macStringENC(inText: sb.getAsString())
queryParams.updateString(jsonPath: "access_token", value: jsonToken.string(of: "data.access_token"))
queryParams.updateString(jsonPath: "sign", value: sig)
http.setRequestHeader(name: "x-tts-access-token", value: jsonToken.string(of: "data.access_token"))
http.setRequestHeader(name: "content-type", value: "application/json")
let resp = CkoHttpResponse()!
success = http.httpParams(verb: "GET", url: "https://open-api.tiktokglobalshop.com/authorization/202309/shops", json: queryParams, response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
let json = CkoJsonObject()!
resp.getBodyJson(json: json)
print("\(resp.statusCode.intValue)")
print("\(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"
// }
var cipher: String?
var code_str: String?
var id: String?
var name: String?
var region: String?
var seller_type: String?
var code: Int = json.int(of: "code").intValue
var message: String? = json.string(of: "message")
var request_id: String? = json.string(of: "request_id")
i = 0
var count_i: Int = json.size(ofArray: "data.shops").intValue
while i < count_i {
json.i = i
cipher = json.string(of: "data.shops[i].cipher")
code_str = json.string(of: "data.shops[i].code")
id = json.string(of: "data.shops[i].id")
name = json.string(of: "data.shops[i].name")
region = json.string(of: "data.shops[i].region")
seller_type = json.string(of: "data.shops[i].seller_type")
i = i + 1
}
}