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