【问题标题】:The operation couldn’t be completed. (com.facebook.sdk error 5.) FACEBOOK VIDEO UPLOAD操作无法完成。 (com.facebook.sdk 错误 5。)FACEBOOK 视频上传
【发布时间】: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 出了什么问题。它上传图像、文本,但在视频中却出现此错误。

注意:

  1. 不是一次次发送,因为我也通过创建新帐户和重置iOS设备进行了测试。
  2. sample.mov 也存在并可与图形 api 一起使用,但问题在于此 SDK。

谢谢。

【问题讨论】:

标签: ios facebook


【解决方案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
           }
         }];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-27
        • 2013-04-09
        • 1970-01-01
        • 2023-03-29
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多