Sample code for 30+ languages & platforms
Lianja Requires Chilkat v11.0.0+

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