Error al publicar video en Facebook usando el SDK para iOS

Tengo una aplicación que publica videos nativos (files MOV) en Facebook utilizando Facebook SDK para iOS. Funcionó sin problemas hasta hace unas semanas donde comenzó a fallar con el siguiente error:

error = { code = 352; message = "(#352) Sorry, the video file you selected is in a format that we don't support."; type = OAuthException; }; 

La cadena de error completa es:

Error Domain = com.facebook.sdk Code = 5 "No se pudo completar la operación. (Com.facebook.sdk error 5.)" UserInfo = 0x1ea42880 {com.facebook.sdk: HTTPStatusCode = 400, com.facebook.sdk : ParsedJSONResponseKey = {body = {error = {code = 352; message = "(# 352) Lo sentimos, el file de video que seleccionó está en un formatting que no admitimos."; tipo = OAuthException; }; }; código = 400; headers = ({name = "Access-Control-Allow-Origin"; value = "*";}, {name = "Cache-Control"; value = "no-store";}, {name = Connection; value = close;}, {name = "Content-Type"; value = "text / javascript; charset = UTF-8";}, {name = Expires; value = "Sat, 01 Jan 2000 00:00:00 GMT"; }, {name = Pragma; value = "no-cache";}, {name = "WWW-Authenticate"; value = "OAuth \" Facebook Platform \ "\" invalid_request \ "\" (# 352) Lo sentimos, el El file de video que seleccionó está en un formatting que no admitimos. \ "";}, {name = "x-fb-loadmon"; value = "0,30,70";}); }, com.facebook.sdk: ErrorSessionKey =, date de caducidad: 4001-01-01 00:00:00 +0000, date de actualización: 2013-10-15 17:19:33 +0000, intentóRefreshFecha: 2013-10-24 14: 56:54 +0000, permissions 🙁 "share_item", correo electrónico, "user_photos", "user_videos", "publish_checkins", "manage_pages", "read_friendlists")>}

El código que uso para publicar es similar a este:

 NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys: videoData,@"video.mov", @"video/quicktime", @"contentType", title, @"title", status, @"description", nil]; FBRequest* request = [FBRequest requestWithGraphPath:[NSString stringWithFormat:@"%@/videos",@"me"] parameters:params HTTPMethod:@"POST"]; [request setSession:session]; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0ul); dispatch_async(queue, ^{ dispatch_async(dispatch_get_main_queue(), ^(void) { [request startWithCompletionHandler:^(FBRequestConnection* conn, id data, NSError* error){ SSLog(@"DONE!"); [self processResponseWithData:data requestIdentifier:requestIdentifier andError:error]; }]; }); }); 

He actualizado la última versión de SDK (3.9), pero el error sigue ahí. ¿Algún cuerpo está experimentando este error?

Estoy probando con iOS6 y iOS7, por lo que el problema no está relacionado con la versión del sistema operativo. El mismo video carga okey usando la function incorporada iOS-Facebook.

¡Muchas gracias!

Justo antes de FBRequest Agregar una línea para abrir FBRequestConnection Trabajó para mí.

 [FBRequestConnection startWithGraphPath:@"me/videos" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { FBRequest *uploadRequest = [FBRequest requestWithGraphPath:@"me/videos" parameters:params HTTPMethod:@"POST"]; }]; 

Respuestas arriba del trabajo. Pero asegúrese de haber creado la session de Facebook, con openActiveSessionWithPublishPermissions no openActiveSessionWithReadPermissions.

Pasé un día en esto, porque si usas el equivocado, obtienes el (in) famoso "(# 352) Lo sentimos, el file de video que seleccionaste está en un formatting que no admitimos".

En cualquier caso, el único permiso que realmente necesitas es publish_actions

No utilizo key contentType int params. Funciona bien con Facebook SDK 3.10 (más reciente)

 NSData *videoData = [NSData dataWithContentsOfFile:filePath]; NSString* videoName = [filePath lastPathComponent]; NSMutableDictionary* params = [[NSMutableDictionary alloc] init]; [params setObject:caption forKey:@"description"]; [params setObject:videoData forKey:videoName]; FBRequestConnection *requestConnection = [FBRequestConnection startWithGraphPath:@"me/videos" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { }]; 

Tuve el mismo post de error y la causa fue que el nombre de file no coincidía con la encoding.

Estaba convirtiendo gif a mp4 y subiendo, pero mi nombre de file todavía era *.gif