0

OAuth で保護された URL にある画像を取得しようとしています。仕様書を調べましたが、すべてを正しく理解できていないようです。これが私がやっていることです:

OAuth Authorization ヘッダーを作成します。

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"];

Authorization を http リクエストに追加します。

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

そして、それを送ってください。

404 コードで空の応答が返されます。テストとして URL の OAuth 保護を無効にすると、正常に取得できるため、URL が正しいことは確かです。

私が何か悪いことをしているときに、あなたに何か突き出ていますか?どうもありがとう。

4

1 に答える 1

1

すべての OAuth パラメーターは適切に見えますが、コードは完全にはほど遠いものです。サービス プロバイダーが Authorization HTTP ヘッダーを理解していないか、有効な OAuth 署名の作成に失敗した可能性があります (その場合は、PLAINTEXT を試してみてください)。

いずれの場合も、404 で応答することは間違いなくエラーであり、OAuth プロバイダーに連絡して、できるだけ詳細な情報を提供する必要があります。

于 2012-06-16T15:16:55.260 に答える