Objective-C
Objective-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 Objective-C Downloads
#import <CkoRest.h>
#import <CkoJsonObject.h>
#import <CkoOAuth1.h>
#import <NSString.h>
BOOL success = NO;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoRest *rest = [[CkoRest alloc] init];
// See this example for getting an OAuth1 token for Etsy
CkoJsonObject *json = [[CkoJsonObject alloc] init];
success = [json LoadFile: @"qa_data/tokens/etsy.json"];
if (success == NO) {
NSLog(@"%@",@"Failed to load previously fetched Etsy OAuth1 access token.");
return;
}
CkoOAuth1 *oauth1 = [[CkoOAuth1 alloc] init];
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: [NSNumber numberWithInt: 16]];
BOOL autoReconnect = YES;
BOOL tls = YES;
success = [rest Connect: @"openapi.etsy.com" port: [NSNumber numberWithInt: 443] tls: tls autoReconnect: autoReconnect];
if (success == NO) {
NSLog(@"%@",rest.LastErrorText);
return;
}
// Tell the REST object to use the OAuth1 object.
success = [rest SetAuthOAuth1: oauth1 useQueryParams: YES];
NSString *jsonText = @"[{\"product_id\":1999949999,\"property_values\":[],\"offerings\":[{\"offering_id\":9999905883,\"price\":\"36.23\",\"quantity\":1}]}]";
[rest AddQueryParam: @"products" value: jsonText];
[rest AddHeader: @"Content-Type" value: @"application/x-www-form-urlencoded"];
NSString *jsonResponseText = [rest FullRequestFormUrlEncoded: @"PUT" uriPath: @"/v2/listings/228827035/inventory"];
if (rest.LastMethodSuccess == NO) {
NSLog(@"%@",rest.LastErrorText);
return;
}
CkoJsonObject *jsonResponse = [[CkoJsonObject alloc] init];
[jsonResponse Load: jsonResponseText];
jsonResponse.EmitCompact = NO;
NSLog(@"%@",[jsonResponse Emit]);
NSLog(@"%@%d",@"Response status code: ",[rest.ResponseStatusCode intValue]);