Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJsonToken
LOCAL loQueryParams
LOCAL loDt
LOCAL lnAscending
LOCAL lnCaseSensitive
LOCAL lcAppSecret
LOCAL lcPath
LOCAL loSb
LOCAL lnNumParams
LOCAL i
LOCAL loCrypt
LOCAL lcSig
LOCAL loResp
LOCAL loJson
LOCAL lcCipher
LOCAL lcCode_str
LOCAL lcId
LOCAL lcName
LOCAL lcRegion
LOCAL lcSeller_type
LOCAL lnCode
LOCAL lcMessage
LOCAL lcRequest_id
LOCAL lnCount_i
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
* 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('Chilkat.JsonObject')
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
IF (lnSuccess <> 1) THEN
? "Failed to load tiktok-shops.json"
RELEASE loHttp
RELEASE loJsonToken
CANCEL
ENDIF
loQueryParams = CreateObject('Chilkat.JsonObject')
loQueryParams.UpdateString("app_key","APP_KEY")
loDt = CreateObject('Chilkat.CkDateTime')
loQueryParams.UpdateString("timestamp",loDt.GetAsUnixTimeStr(0))
loQueryParams.UpdateInt("version",202309)
* Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
lnAscending = 1
lnCaseSensitive = 1
loQueryParams.Sort(lnAscending,lnCaseSensitive)
lcAppSecret = "APP_SECRET"
lcPath = "/authorization/202309/shops"
* Build the StringToSign
loSb = CreateObject('Chilkat.StringBuilder')
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('Chilkat.Crypt2')
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('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpParams("GET","https://open-api.tiktokglobalshop.com/authorization/202309/shops",loQueryParams,loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loJsonToken
RELEASE loQueryParams
RELEASE loDt
RELEASE loSb
RELEASE loCrypt
RELEASE loResp
CANCEL
ENDIF
loJson = CreateObject('Chilkat.JsonObject')
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