Steven
Steven

Reputation: 1098

Making a GET call on an OAuth protected URL

I'm trying to get an image sitting at a URL that is protected by OAuth. I've looked through the spec docs but can't seem to get everything right. Here's what I'm doing:

Construct an OAuth Authorization header:

NSString *oauthHeader = @"Authorization: OAuth ";
oauthHeader = [oauthHeader stringByAppendingFormat:@"oauth_consumer_key=%@",oauthConsumerKey];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_token=%@",oauthAccessToken];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_signature_method=HMAC-SHA1"];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_signature=%@",escapedString];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_timestamp=%d",oauthTimeStamp];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_nonce=%@",oauthNonce];
oauthHeader = [oauthHeader stringByAppendingFormat:@",oauth_version=1.0"];

Add the Authorization to the http request:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:imageUrl]];
[request setValue:oauthHeader forHTTPHeaderField:@"Authorization"];

And then send it on.

I get an empty response back with a 404 code. I am certain the URL is correct, because as a test if I disable the OAuth protection on the URL I am able to retrieve it fine.

Does anything stick out to you as me doing something wrong? Thanks much.

Upvotes: 0

Views: 379

Answers (1)

Jan Ahrens
Jan Ahrens

Reputation: 26

All OAuth parameters look good, but your code is far from being complete. A wild guess would be that the service provider does not understand the Authorization HTTP header or that you failed to create a valid OAuth signature (in that case try maybe PLAINTEXT).

In each case: replying with a 404 is definitely an error and you should contact the OAuth provider, giving as much detail as you can.

Upvotes: 1

Related Questions