ObjectiveFlickr 2.0 사용시에 파일업로드 버그 수정



ObjectiveFlickr 2.0 을 사용할때 버그가 있어서 조금 고생을 했습니다. 무슨 버그냐 하면...

파일업로드할때  description, tags, title 등을 입력하게 되면 96번 invalid signature 에러가 발생하게 되는데 공백처리와 관련된 에러 입니다.

http://groups.google.com/group/objectiveflickr/browse_thread/thread/6f789224c6a49141

해결책은

ObjectiveFlickr.m 파일의 signedArgumentComponentsFromArguments 메소드를 다음과 같이 변경하면 되겠습니다.


@implementation OFFlickrAPIContext (PrivateMethods)
- (NSArray *)signedArgumentComponentsFromArguments:(NSDictionary *)inArguments
{
    NSMutableDictionary *newArgs = [NSMutableDictionary dictionaryWithDictionary:inArguments];
    if ([key length]) {
        [newArgs setObject:key forKey:@"api_key"];
    }
   
    if ([authToken length]) {
        [newArgs setObject:authToken forKey:@"auth_token"];
    }
   
    // combine the args
    NSMutableArray *argArray = [NSMutableArray array];
    NSMutableString *sigString = [NSMutableString stringWithString:[sharedSecret length] ? sharedSecret : @""];
    NSArray *sortedArgs = [[newArgs allKeys] sortedArrayUsingSelector:@selector(compare:)];
    NSEnumerator *argEnumerator = [sortedArgs objectEnumerator];
    NSString *nextKey;
    while (nextKey = [argEnumerator nextObject]) {
        NSString *value = [newArgs objectForKey:nextKey];
        [sigString appendFormat:@"%@%@", nextKey, value];
        //[argArray addObject:[NSArray arrayWithObjects:nextKey, OFEscapedURLStringFromNSString(value), nil]];
        [argArray addObject:[NSArray arrayWithObjects:nextKey, value, nil]];
    }
   
    NSString *signature = OFMD5HexStringFromNSString(sigString);   
    [argArray addObject:[NSArray arrayWithObjects:@"api_sig", signature, nil]];
    return argArray;
}



수정하고 컴파일해서 테스트 해봤는데, 성공적으로 업로드가 되는걸 확인할 수 있었습니다. Good Job.

Trackback URL : http://rainless.ipocs.com/blog/trackback/249