操作无法完成。 (com.facebook.sdk 错误 5。)FACEBOOK 视频上传
Posted
技术标签:
【中文标题】操作无法完成。 (com.facebook.sdk 错误 5。)FACEBOOK 视频上传【英文标题】:The operation couldn’t be completed. (com.facebook.sdk error 5.) FACEBOOK VIDEO UPLOAD 【发布时间】:2013-10-27 11:29:04 【问题描述】:我编写了以下代码,用于从 ios 设备将视频上传到 Facebook。
-(void)uploadVideo
NSLog(@"UPload Videio ");
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"mov"];
NSLog(@"Path is %@", filePath);
NSData *videoData = [NSData dataWithContentsOfFile:filePath];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
videoData, @"video.mov",
@"video/quicktime", @"contentType",
@"Video Test Title", @"title",
@"Video Test Description", @"description",
nil];
// [facebook requestWithGraphpath:@"me/videos"
// andParams:params
// andHttpMethod:@"POST"
// andDelegate:self];
if (FBSession.activeSession.isOpen)
[FBRequestConnection startWithGraphPath:@"me/videos"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if(!error)
NSLog(@"OK: %@", result);
else
NSLog(@"Error: %@", error.localizedDescription);
];
else
// We don't have an active session in this app, so lets open a new
// facebook session with the appropriate permissions!
// Firstly, construct a permission array.
// you can find more "permissions strings" at http://developers.facebook.com/docs/authentication/permissions/
// In this example, we will just request a publish_stream which is required to publish status or photos.
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"publish_stream",
nil];
//[self controlStatusUsable:NO];
// OPEN Session!
[FBSession openActiveSessionWithPermissions:permissions
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error)
// if login fails for any reason, we alert
if (error)
// show error to user.
else if (FB_ISSESSIONOPENWITHSTATE(status))
// no error, so we proceed with requesting user details of current facebook session.
[FBRequestConnection startWithGraphPath:@"me/videos"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
// [FBRequestConnection setVideoMode:NO];
if(!error)
NSLog(@"VEEERRRRRRR: %@", result);
else
NSLog(@"VVEEERRRRREEEERRR: %@", error.localizedDescription);
];
//[self promptUserWithAccountNameForUploadPhoto];
// [self controlStatusUsable:YES];
];
这给了我错误 操作无法完成。 (com.facebook.sdk 错误 5。)
我不知道 Facebook 出了什么问题。它上传图像、文本,但在视频中却出现此错误。
注意:
-
不是一次次发送,因为我也通过创建新帐户和重置iOS设备进行了测试。
sample.mov 也存在并可与图形 api 一起使用,但问题在于此 SDK。
谢谢。
【问题讨论】:
老兄找到解决办法了吗??因为我也有同样的问题 你试过把@"title"改成@"name"吗? developers.facebook.com/docs/reference/api/video中没有名为“title”的字段 【参考方案1】:看到 com.facebook.sdk 错误 5 的几个原因:
会话未打开。验证。 Facebook 检测到您正在向系统发送垃圾邮件。更改视频名称。 Facebook 对使用 SDK 有明确的限制。尝试其他应用。 错误的发布权限。试一试 publish_actions。 这里有更多...?【讨论】:
【参考方案2】:已阅读this 解决方案。我能够解决这个问题。
[FBRequestConnection startWithGraphPath:@"me/videos"
completionHandler:^(FBRequestConnection *connection,
id result, NSError *error)
[FBRequestConnection startWithGraphPath:@"me/videos"
parameters:params
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
if(!error)
NSLog(@"SUCCESS RESULT: %@", result);
else
NSLog(@"ERROR: %@", error.localizedDescription);
];
];
【讨论】:
【参考方案3】:当我发现我的应用没有出现在以下位置时,我整天都遇到这个问题:
设置应用->Facebook->“允许这些应用使用您的帐户”
这让我意识到默认情况下不允许发布到 Facebook,您必须提示用户获得他们的许可:
[[FBSession activeSession] requestNewPublishPermissions:@[@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session, NSError *error)
if (!error)
// UPLOAD VIDEO HERE AND THAT ERROR 5 SHOULD GO AWAY
];
【讨论】:
以上是关于操作无法完成。 (com.facebook.sdk 错误 5。)FACEBOOK 视频上传的主要内容,如果未能解决你的问题,请参考以下文章
出现错误'操作无法完成。 (com.facebook.sdk 错误 5.)' 从 iphone 在 facebook 上发布视频时
操作无法完成。 (com.facebook.sdk.core 错误 3。)
FB ios SDK 3.13.1 操作无法完成(com.facebook.sdk 错误2)
操作无法完成 com.facebook.sdk 错误 3 - IOS-react-native-FBSDK
登录 facebook 时无法完成操作。(com.facebook.sdk 错误 2.0)错误。 iOS 6,iPhone3gs