Impossible de transférer de grandes videos sur Facebook depuis l'application iOS

J'essaie de download de gros files video sur Facebook, mais quelle que soit l'approche adoptée, le résultat est toujours le même. Le process télécharge entre 5-35 Mo de données puis expire. Cela arrive sur le WiFi.

J'ai essayé avec le Facebook SDK 3.1.1, iOS Social Library (ie SLRequest) et AFNetworking.

La librairie sociale et l'afnetworking donnent des erreurs de timeout, alors que le SDK Facebook renvoie juste un code 5, Opération Could Not Completed, HTML Error 200 mais si je regarde l'activité du réseau via des instruments il a la même signature, soit une certaine quantité de mégaoctets en cours de téléchargement avant de se bloquer.

Notez que je suis capable de download de plus petites videos sans aucun problème, en utilisant l'une des trois methods.

Quelqu'un at-il rencontré ce problème et trouvé des solutions ou des raisons pour cela?

ps Je crois que c'est un bug Facebook et j'ai enregistré un problème là-bas si quelqu'un d'autre veut s'y abonner pour les encourager à enquêter ( https://developers.facebook.com/bugs/265409976924087 ).

Code SDK Facebook

NSData *videoData = [NSData dataWithContentsOfFile:videoUrlStr options:NSDataReadingMappedAlways error:&lError]; NSSsortingng *description = self.streamToShare.videoDescription; if (description == nil){ description = @""; } NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:videoData, self.streamToShare.publishedStoryFileName, @"video/quicktime", @"contentType", self.streamToShare.name, @"title", description,@"description", nil]; [FBRequestConnection startWithGraphPath:@"me/videos" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (error) { self.errorMessage = [NSSsortingng ssortingngWithFormat:@"error: domain = %@, code = %d, description = %@", error.domain, error.code, error.localizedDescription]; } } 

Bibliothèque native iOS et code AFNetworking

 [accountStore requestAccessToAccountsWithType:facebookTypeAccount options:@{ACFacebookAppIdKey: appID,ACFacebookPermissionsKey: @[@"publish_stream"],ACFacebookAudienceKey:ACFacebookAudienceFriends} completion:^(BOOL granted, NSError *error) { if(granted){ NSArray *accounts = [accountStore accountsWithAccountType:facebookTypeAccount]; facebookAccount = [accounts lastObject]; NSLog(@"Facebook Login Success"); NSURL *videourl = [NSURL URLWithSsortingng:@"https://graph.facebook.com/me/videos"]; NSURL *pathURL = [[NSURL alloc]initFileURLWithPath:self.streamToShare.publishedStoryURL isDirectory:NO]; NSDictionary *params = @{ @"title": self.streamToShare.name, @"description": description }; SLRequest *uploadRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook requestMethod:SLRequestMethodPOST URL:videourl parameters:params]; [uploadRequest addMultipartData:videoData withName:@"source" type:@"video/quicktime" filename:[pathURL absoluteSsortingng]]; uploadRequest.account = facebookAccount; NSURLRequest *urlRequest = [uploadRequest preparedURLRequest]; NSMutableURLRequest *mutableUrlRequest = [urlRequest mutableCopy]; [mutableUrlRequest setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData]; [mutableUrlRequest setTimeoutInterval:60]; // adjusting this does not fix the issue // AF Networking Code NSInputStream *stream = [[NSInputStream alloc] initWithData:videoData]; [mutableUrlRequest setHTTPBodyStream:stream]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:mutableUrlRequest]; [operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { NSLog(@"%lld bytes out of %lld sent", totalBytesWritten, totalBytesExpectedToWrite, progress); }]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"Facebook upload success"); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Facebook upload error %@",error.localizedDescription); } }]; [operation start]; // iOS Native Library Upload - Commented out so AFNetworking could be tested //NSURLResponse *urlResponse = nil; //NSError *urlRequestError = nil; /*[NSURLConnection sendSynchronousRequest:mutableUrlRequest returningResponse:&urlResponse error:&urlRequestError]; if (urlResponse == nil) { // Check for problems if (urlRequestError != nil) { NSLog(@"Error %@", urlRequestError.localizedDescription); } } else { // Data was received.. continue processing NSLog(@"Worked!"); }*/ }else{ // ouch NSLog(@"Permission not granted. Error: %@", error); } }]; 

graph.facebook.com semble seulement accepter de petites videos. Essayez de postr sur graph-video.facebook.com/me/videos à la place

 NSURL *videourl = [NSURL URLWithSsortingng:@"https://graph-video.facebook.com/me/videos"]; 

Cela a été résolu dans le dernier SDK. Cela fonctionne maintenant sans problème.