Sample code for 30+ languages & platforms
B4X

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

B4X
Dim success As Boolean = False

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

Dim rest As ChilkatRest
rest.Initialize("rest")

'  See this example for getting an OAuth1 token for Etsy

Dim json As ChilkatJsonObject
json.Initialize
success = json.LoadFile("qa_data/tokens/etsy.json")
If success = False Then
    Log("Failed to load previously fetched Etsy OAuth1 access token.")
    Return
End If


Dim oauth1 As ChilkatOAuth1
oauth1.Initialize

oauth1.ConsumerKey = "app_keystring"
oauth1.ConsumerSecret = "app_shared_secret"
oauth1.Token = json.StringOf("oauth_token")
oauth1.TokenSecret = json.StringOf("oauth_token_secret")
oauth1.SignatureMethod = "HMAC-SHA1"
oauth1.GenNonce(16)

Dim autoReconnect As Boolean = True
Dim tls As Boolean = True
success = rest.Connect("openapi.etsy.com", 443, tls, autoReconnect)
If success = False Then
    Log(rest.LastErrorText)
    Return
End If


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

Dim jsonText As String = "[{" & Chr(34) & "product_id" & Chr(34) & ":1999949999," & Chr(34) & "property_values" & Chr(34) & ":[]," & Chr(34) & "offerings" & Chr(34) & ":[{" & Chr(34) & "offering_id" & Chr(34) & ":9999905883," & Chr(34) & "price" & Chr(34) & ":" & Chr(34) & "36.23" & Chr(34) & "," & Chr(34) & "quantity" & Chr(34) & ":1}]}]"

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

Dim jsonResponseText As String = rest.FullRequestFormUrlEncoded("PUT", "/v2/listings/228827035/inventory")
If rest.LastMethodSuccess = False Then
    Log(rest.LastErrorText)
    Return
End If



Dim jsonResponse As ChilkatJsonObject
jsonResponse.Initialize
jsonResponse.Load(jsonResponseText)
jsonResponse.EmitCompact = False

Log(jsonResponse.Emit)

Log("Response status code: " & rest.ResponseStatusCode)