我找到了一些使用 facebook SDK 上传视频的解决方案,但它们都不起作用(包括来自 facebook 开发人员博客的信息)。这是我用来上传视频的代码。“out_composed.mov”已成功创建,因为我可以将该视频保存在图库中或通过电子邮件发送。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString* composedOutputPath = [documentsDirectoryPath stringByAppendingPathComponent:@"out_composed.mov"];
NSData *videoData = [NSData dataWithContentsOfFile:composedOutputPath];
NSMutableDictionary<FBGraphObject>* params = [FBGraphObject graphObject];
[params setDictionary:[NSMutableDictionary dictionaryWithObjectsAndKeys:
videoData, @"video.mov",
@"video/quicktime", @"contentType",
@"My awesome video", @"title", nil]];
if (!appDelegate.session.isOpen)
{
[FBSession openActiveSessionWithPermissions:[NSArray arrayWithObjects:@"offline_access", @"publish_stream",@"user_videos",@"video_upload",nil] allowLoginUI:true completionHandler:^(FBSession *session, FBSessionState status, NSError *error)
{
FBRequest* uploadVideoRequest = [FBRequest requestForPostWithGraphPath:@"/me/videos" graphObject:params];
[uploadVideoRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
// The server returns "353 missing video file" here.
if(error != nil) NSLog(@"%@",[error description]);
else NSLog(@"Error: %@", error);
}];
}];
appDelegate.session = [FBSession activeSession];
} else
{
FBRequest* uploadVideoRequest = [FBRequest requestForPostWithGraphPath:@"/me/videos" graphObject:params];
[uploadVideoRequest startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
if(error != nil) NSLog(@"%@",[error description]);
else NSLog(@"Error: %@", error);
}];
}
我得到的错误是:
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x1fdc94a0 {com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 353;
message = "(#353) Missing video file";
type = OAuthException;
};
};
code = 400;
}, com.facebook.sdk:HTTPStatusCode=400}
我怎样才能解决这个问题?提前非常感谢!
平子