操作无法完成。 (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

Facebook iOS SDK 返回错误“com.facebook.sdk 错误 4”