通过Video-graph.Facebook iOS将视频上传至Facebook
我正在上传一段视频。我已将视频文件保存到MP4文件,如下所示:通过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
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");
}
}];
但我收到了这个错误:
很抱歉,您选择的视频文件的格式我们不支持
看看
因此,请检查该视频是否真的是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”];
?