2012-06-16 5 views
0

OAuth가 보호하는 URL에 이미지를 저장하려고합니다. 스펙 문서를 살펴 봤지만 모든 것을 올바르게 처리하지 못하는 것 같습니다. OAuth로 보호 된 URL에서 GET 호출하기

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

는 HTTP 요청에 권한을 추가합니다 :

는의 OAuth 인증 헤더를 구축 :

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

을 그리고 그것을 보내 여기에 내가 뭘하는지입니다.

404 코드로 응답이 다시 나타납니다. URL에 OAuth 보호 기능을 사용하지 않도록 설정했는지 테스트 할 때 정상적으로 검색 할 수 있기 때문에 URL의 정확성을 확신합니다.

나에게 뭔가 이상한 행동이 생길 수 있습니까? 감사합니다.

답변

1

모든 OAuth 매개 변수는 모양이 좋아 보이지만 코드가 완성되지 않았습니다. 아마도 서비스 제공 업체가 승인 HTTP 헤더를 이해하지 못했거나 올바른 OAuth 서명을 만들지 못했을 것입니다 (이 경우 PLAINTEXT를 사용해보세요).

각각의 경우 : 404로 답장하는 것은 분명히 오류이므로 OAuth 제공 업체에 가능한 한 자세히 설명해야합니다.

+0

맞습니다. 현재 서명 방법이 PLAINTEXT (생성 코드가 내 게시물에 포함되지 않은'escapedString') 인 것처럼 생성됩니다. HMAC-SHA1 인코딩을 얻는 중입니다. 예상보다 어렵습니다. iOS의 모든 샘플 코드에서 나를 가리킬 수 있습니까? 감사. – Steven

+0

샘플 코드가 없지만 OAuth 서명 코드를 직접 작성하는 것을 권장하지 않습니다. 사용 가능한 대부분의 프로그래밍 언어에는 우수한 OAuth 라이브러리가 있습니다. –