Sample code for 30+ languages & platforms
Go

Update an Inventory Listing using OAuth1 Authentication

See more Etsy Examples

Updates an inventory listing. This example uses OAuth1 authentication instead of providing an api_key=MY_ETSY_KEYSTRING query parameter.

Chilkat Go Downloads

Go
    success := false

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

    rest := chilkat.NewRest()

    // See this example for getting an OAuth1 token for Etsy

    json := chilkat.NewJsonObject()
    success = json.LoadFile("qa_data/tokens/etsy.json")
    if success == false {
        fmt.Println("Failed to load previously fetched Etsy OAuth1 access token.")
        rest.DisposeRest()
        json.DisposeJsonObject()
        return
    }

    oauth1 := chilkat.NewOAuth1()

    oauth1.SetConsumerKey("app_keystring")
    oauth1.SetConsumerSecret("app_shared_secret")
    oauth1.SetToken(json.StringOf("oauth_token"))
    oauth1.SetTokenSecret(json.StringOf("oauth_token_secret"))
    oauth1.SetSignatureMethod("HMAC-SHA1")
    oauth1.GenNonce(16)

    autoReconnect := true
    tls := true
    success = rest.Connect("openapi.etsy.com",443,tls,autoReconnect)
    if success == false {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        json.DisposeJsonObject()
        oauth1.DisposeOAuth1()
        return
    }

    // Tell the REST object to use the OAuth1 object.
    success = rest.SetAuthOAuth1(oauth1,true)

    jsonText := "[{\"product_id\":1999949999,\"property_values\":[],\"offerings\":[{\"offering_id\":9999905883,\"price\":\"36.23\",\"quantity\":1}]}]"

    rest.AddQueryParam("products",jsonText)
    rest.AddHeader("Content-Type","application/x-www-form-urlencoded")

    jsonResponseText := rest.FullRequestFormUrlEncoded("PUT","/v2/listings/228827035/inventory")
    if rest.LastMethodSuccess() == false {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        json.DisposeJsonObject()
        oauth1.DisposeOAuth1()
        return
    }

    jsonResponse := chilkat.NewJsonObject()
    jsonResponse.Load(*jsonResponseText)
    jsonResponse.SetEmitCompact(false)

    fmt.Println(*jsonResponse.Emit())

    fmt.Println("Response status code: ", rest.ResponseStatusCode())

    rest.DisposeRest()
    json.DisposeJsonObject()
    oauth1.DisposeOAuth1()
    jsonResponse.DisposeJsonObject()