Sample code for 30+ languages & platforms
Unicode C++

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 Unicode C++ Downloads

Unicode C++
#include <CkRestW.h>
#include <CkJsonObjectW.h>
#include <CkOAuth1W.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkRestW rest;

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

    CkJsonObjectW json;
    success = json.LoadFile(L"qa_data/tokens/etsy.json");
    if (success == false) {
        wprintf(L"Failed to load previously fetched Etsy OAuth1 access token.\n");
        return;
    }

    CkOAuth1W oauth1;

    oauth1.put_ConsumerKey(L"app_keystring");
    oauth1.put_ConsumerSecret(L"app_shared_secret");
    oauth1.put_Token(json.stringOf(L"oauth_token"));
    oauth1.put_TokenSecret(json.stringOf(L"oauth_token_secret"));
    oauth1.put_SignatureMethod(L"HMAC-SHA1");
    oauth1.GenNonce(16);

    bool autoReconnect = true;
    bool tls = true;
    success = rest.Connect(L"openapi.etsy.com",443,tls,autoReconnect);
    if (success == false) {
        wprintf(L"%s\n",rest.lastErrorText());
        return;
    }

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

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

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

    const wchar_t *jsonResponseText = rest.fullRequestFormUrlEncoded(L"PUT",L"/v2/listings/228827035/inventory");
    if (rest.get_LastMethodSuccess() == false) {
        wprintf(L"%s\n",rest.lastErrorText());
        return;
    }

    CkJsonObjectW jsonResponse;
    jsonResponse.Load(jsonResponseText);
    jsonResponse.put_EmitCompact(false);

    wprintf(L"%s\n",jsonResponse.emit());

    wprintf(L"Response status code: %d\n",rest.get_ResponseStatusCode());
    }