Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Video-graph.Facebook iOS将视频上传至Facebook_Ios_Objective C_Facebook_Facebook Graph Api_Video - Fatal编程技术网

通过Video-graph.Facebook iOS将视频上传至Facebook

通过Video-graph.Facebook iOS将视频上传至Facebook,ios,objective-c,facebook,facebook-graph-api,video,Ios,Objective C,Facebook,Facebook Graph Api,Video,我正在上传一段视频。我已将视频文件保存到MP4文件,如下所示: NSString *fileName = [NSString stringWithFormat:@"chatVideo-%d.mp4",arc4random()%1000]; NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:fileName]; NSURL *videoURL = [NSURL fileURLWithPath:myPa

我正在上传一段视频。我已将视频文件保存到MP4文件,如下所示:

NSString *fileName = [NSString stringWithFormat:@"chatVideo-%d.mp4",arc4random()%1000];
NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:fileName];
NSURL *videoURL = [NSURL fileURLWithPath:myPathDocs];
AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:asset2 presetName:AVAssetExportPresetHighestQuality];
exportSession.outputURL = videoURL;
exportSession.outputFileType = AVFileTypeMPEG4;
NSData *videodata =[NSData dataWithContentsOfURL:videoURL];
我调用graph API上传到Facebook:

[parameters setValue:videoData forKey:@"source"];

    [parameters setValue:thumbData forKey:@"thumb"];

    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me/videos"
                                       parameters:parameters
                                       HTTPMethod:@"POST"]
     startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
         if ([error.userInfo[FBSDKGraphRequestErrorGraphErrorCode] isEqual:@200]) {
             NSLog(@"permission error");
         }
     }];
但我收到了这个错误:

很抱歉,您选择的视频文件的格式我们不支持

看看

要查看支持的视频类型列表,请执行以下操作:

3g2、3gp、3gpp、asf、avi、dat、divx、dv、f4v、flv、m2ts、m4v、mkv、mod、mov、mp4、mpe、mpeg、mpg4、mpg、mts、nsv、ogm、ogv、qt、tod、ts、vob、wmv

因此,检查视频是否真的是MP4视频…

看一看

要查看支持的视频类型列表,请执行以下操作:

3g2、3gp、3gpp、asf、avi、dat、divx、dv、f4v、flv、m2ts、m4v、mkv、mod、mov、mp4、mpe、mpeg、mpg4、mpg、mts、nsv、ogm、ogv、qt、tod、ts、vob、wmv


因此,请检查该视频是否真的是MP4视频…

是的,经过很长时间,我找到了答案:

[parameters setValue:videoData forKey:@"source"];
它必须是:

[parameters setValue:videoData forKey:@"video.mp4"];

我讨厌Facebook文档==

是啊,过了很长一段时间我终于找到了答案:

[parameters setValue:videoData forKey:@"source"];
它必须是:

[parameters setValue:videoData forKey:@"video.mp4"];

我讨厌Facebook文档==

您可以在上面的代码中看到,我的文件名为MP4,输出也为AVFileTypeMPEG4(请确保您将其提交到
graph video.facebook.com
,并将请求编码为
multipart/form data
我遵循facebook上的此指南。当它在sdk中运行时,我也检查了它,它名为graph-video.facebook.com。您可以在上面的代码中看到,我的名称文件是MP4,输出也是AVFileTypeMPEG4。)(请确保您将其提交到
graph-video.facebook.com
,并且请求被编码为
multipart/form data
我遵循facebook上的这一指南。当它在sdk中运行时,我也检查了它,称之为graph-video.facebook.com.wtf…我也遇到了同样的问题,并尝试手动进行表单多部分/表单编码,等等。)…最后它只是用
video.mp4
更改了
源代码。如果你还记得的话,你是在哪里找到这个的?(好奇)@MartínMarconcini我引用此来源:谢谢,Facebook文档旨在非常完整,但它显然是由不同的人/团队编写的,有时会很混乱。因此,无论我们使用何种视频格式,我们只称之为
视频。{format}
?例如,MOV视频将成为
[参数设置值:视频数据forKey:@“video.mov”];
AVI格式将变成
[参数设置值:videoData forKey:@“video.AVI”];
?wtf…我也遇到了同样的问题,当时正试图手动进行表单多部分/表单编码,但没有……最后它只是用
video.mp4
更改了
源代码。如果你还记得的话,你是在哪里找到这个的?(好奇)@MartínMarconcini我引用了这个来源:谢谢,Facebook文档的目标是非常完整的,但它显然是由不同的人/团队编写的,有时会很混乱。因此,无论我们使用什么视频格式,我们都只称它为
视频。{format}
?例如,MOV视频将成为
[参数设置值:视频数据forKey:@”video.mov“];
AVI格式将变成
[参数设置值:videoData forKey:@“video.AVI”];