Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

loHttp = createobject("CkHttp")

// 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
loJsonToken = createobject("CkJsonObject")
llSuccess = loJsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
if (llSuccess <> .T.) then
    ? "Failed to load tiktok-shops.json"
    release loHttp
    release loJsonToken
    return
endif

loQueryParams = createobject("CkJsonObject")
loQueryParams.UpdateString("app_key","APP_KEY")
loDt = createobject("CkDateTime")
loQueryParams.UpdateString("timestamp",loDt.GetAsUnixTimeStr(.F.))
loQueryParams.UpdateInt("version",202309)

// Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
llAscending = .T.
llCaseSensitive = .T.
loQueryParams.Sort(llAscending,llCaseSensitive)

lcAppSecret = "APP_SECRET"
lcPath = "/authorization/202309/shops"

// Build the StringToSign
loSb = createobject("CkStringBuilder")
loSb.Append(lcAppSecret)
loSb.Append(lcPath)
lnNumParams = loQueryParams.Size
i = 0
do while i < lnNumParams
    loSb.Append(loQueryParams.NameAt(i))
    loSb.Append(loQueryParams.StringAt(i))
    i = i + 1
enddo
loSb.Append(lcAppSecret)

loCrypt = createobject("CkCrypt2")
loCrypt.HashAlgorithm = "SHA256"
loCrypt.MacAlgorithm = "HMAC"
loCrypt.EncodingMode = "hex_lower"
loCrypt.SetMacKeyString(lcAppSecret)

lcSig = loCrypt.MacStringENC(loSb.GetAsString())

loQueryParams.UpdateString("access_token",loJsonToken.StringOf("data.access_token"))
loQueryParams.UpdateString("sign",lcSig)

loHttp.SetRequestHeader("x-tts-access-token",loJsonToken.StringOf("data.access_token"))
loHttp.SetRequestHeader("content-type","application/json")

loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpParams("GET","https://open-api.tiktokglobalshop.com/authorization/202309/shops",loQueryParams,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loJsonToken
    release loQueryParams
    release loDt
    release loSb
    release loCrypt
    release loResp
    return
endif

loJson = createobject("CkJsonObject")
loResp.GetBodyJson(loJson)

? str(loResp.StatusCode)
? loResp.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"
// }

lnCode = loJson.IntOf("code")
lcMessage = loJson.StringOf("message")
lcRequest_id = loJson.StringOf("request_id")
i = 0
lnCount_i = loJson.SizeOfArray("data.shops")
do while i < lnCount_i
    loJson.I = i
    lcCipher = loJson.StringOf("data.shops[i].cipher")
    lcCode_str = loJson.StringOf("data.shops[i].code")
    lcId = loJson.StringOf("data.shops[i].id")
    lcName = loJson.StringOf("data.shops[i].name")
    lcRegion = loJson.StringOf("data.shops[i].region")
    lcSeller_type = loJson.StringOf("data.shops[i].seller_type")
    i = i + 1
enddo


release loHttp
release loJsonToken
release loQueryParams
release loDt
release loSb
release loCrypt
release loResp
release loJson