私はiPhoneのアプリからFlickrに写真をアップロードするためにObjectiveFlickrライブラリを使用しています。アプリを承認して一般的なリクエストを行うことはできますが、写真をアップロードしようとするとエラーが発生します。アップロードする写真は、AVFoundationを使用してキャプチャした画像です。ObjectiveFlickr写真アップロードエラー
UIImage *image = [[UIImage alloc] initWithData:imageData];
if ([[AppDelegate sharedDelegate].apiContext.OAuthToken length]) {
NSData *uploadData = UIImageJPEGRepresentation(image, 1);
if (!flickrRequest) {
flickrRequest = [[OFFlickrAPIRequest alloc] initWithAPIContext:[AppDelegate sharedDelegate].apiContext];
flickrRequest.delegate = self;
flickrRequest.requestTimeoutInterval = 60.0;
}
[flickrRequest uploadImageStream:[NSInputStream inputStreamWithData:uploadData] suggestedFilename:@"Test" MIMEType:@"image/jpeg" arguments:[NSDictionary dictionaryWithObjectsAndKeys:@"0", @"is_public", nil]];
[UIApplication sharedApplication].idleTimerDisabled = YES;
NSLog(@"Can upload photo");
flickrRequest
オブジェクトが定義されており、@property
は、上記のコードに関連する.hファイルでD」:ここに関連するコードです。私は、デバイス上でプロジェクトを実行すると
- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest imageUploadSentBytes:(NSUInteger)inSentBytes totalBytes:(NSUInteger)inTotalBytes {
NSLog(@"Success");
}
- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didCompleteWithResponse:(NSDictionary *)inResponseDictionary {
NSLog(@"%s %@ %@", __PRETTY_FUNCTION__, inRequest.sessionInfo, inResponseDictionary);
}
- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didFailWithError:(NSError *)inError {
NSLog(@"%s %@ %@", __PRETTY_FUNCTION__, inRequest.sessionInfo, inError);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[inError description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
コンソールを示しています:以下のように
OFFlickrRequestDelegate
方法
Can upload photo
Success
Success
Success
Success
flickrAPIRequest:didFailWithError:(null) Error Domain=org.lukhnos.ObjectiveFlickr Code=2147418115 "The operation couldn’t be completed. (org.lukhnos.ObjectiveFlickr error 2147418115.)"
APIのドキュメント、「エラー2147418115
」を検索すると定義されます"OFFlickrAPIRequestFaultyXMLResponseError
"私はこれがどういう意味であるかは分かりません。また、奇妙な - 私は1つの写真をアップロードしようとしているときに "成功"は4回表示されます。
ObjectiveFlickrの "Snap and Run"を利用したサンプルアプリケーションは、私がテストしているのと同じデバイス上で写真をうまくアップロードします。私のアプリとSnap and Runのコードを比較すると、写真がアップロードされない原因となる大きな違いはありません。
ご協力いただければ幸いです。