Sample code for 30+ languages & platforms
Go 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 Go Downloads

Go
    success := false

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

    http := chilkat.NewHttp()

    //  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
    jsonToken := chilkat.NewJsonObject()
    success = jsonToken.LoadFile("qa_data/tokens/tiktok-shops.json")
    if success != true {
        fmt.Println("Failed to load tiktok-shops.json")
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        return
    }

    queryParams := chilkat.NewJsonObject()
    queryParams.UpdateString("app_key","APP_KEY")
    dt := chilkat.NewCkDateTime()
    queryParams.UpdateString("timestamp",*dt.GetAsUnixTimeStr(false))
    queryParams.UpdateInt("version",202309)

    //  Sort the JSON members by member name, in ascending order (A-Z), case sensitive..
    ascending := true
    caseSensitive := true
    queryParams.Sort(ascending,caseSensitive)

    appSecret := "APP_SECRET"
    path := "/authorization/202309/shops"

    //  Build the StringToSign
    sb := chilkat.NewStringBuilder()
    sb.Append(appSecret)
    sb.Append(path)
    numParams := queryParams.Size()
    i := 0
    for i < numParams {
        sb.Append(*queryParams.NameAt(i))
        sb.Append(*queryParams.StringAt(i))
        i = i + 1
    }

    sb.Append(appSecret)

    crypt := chilkat.NewCrypt2()
    crypt.SetHashAlgorithm("SHA256")
    crypt.SetMacAlgorithm("HMAC")
    crypt.SetEncodingMode("hex_lower")
    crypt.SetMacKeyString(appSecret)

    sig := crypt.MacStringENC(*sb.GetAsString())

    queryParams.UpdateString("access_token",*jsonToken.StringOf("data.access_token"))
    queryParams.UpdateString("sign",*sig)

    http.SetRequestHeader("x-tts-access-token",*jsonToken.StringOf("data.access_token"))
    http.SetRequestHeader("content-type","application/json")

    resp := chilkat.NewHttpResponse()
    success = http.HttpParams("GET","https://open-api.tiktokglobalshop.com/authorization/202309/shops",queryParams,resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        jsonToken.DisposeJsonObject()
        queryParams.DisposeJsonObject()
        dt.DisposeCkDateTime()
        sb.DisposeStringBuilder()
        crypt.DisposeCrypt2()
        resp.DisposeHttpResponse()
        return
    }

    json := chilkat.NewJsonObject()
    resp.GetBodyJson(json)

    fmt.Println(resp.StatusCode())
    fmt.Println(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 = new(string)
    var code_str *string = new(string)
    var id *string = new(string)
    var name *string = new(string)
    var region *string = new(string)
    var seller_type *string = new(string)

    code := json.IntOf("code")
    message := json.StringOf("message")
    request_id := json.StringOf("request_id")
    i = 0
    count_i := json.SizeOfArray("data.shops")
    for i < count_i {
        json.SetI(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
    }


    http.DisposeHttp()
    jsonToken.DisposeJsonObject()
    queryParams.DisposeJsonObject()
    dt.DisposeCkDateTime()
    sb.DisposeStringBuilder()
    crypt.DisposeCrypt2()
    resp.DisposeHttpResponse()
    json.DisposeJsonObject()