How to upload/share video on Facebook ?

前端 未结 3 940
不知归路
不知归路 2021-02-04 20:16

I am making a test app through that I want to post video on facebook. I am using latest sdk of facebook. But I am not able to post it on facebook.

My code is as below.<

3条回答
  •  猫巷女王i
    2021-02-04 20:47

    Successfully tested On FaceBook SDK 3.14.1

    Recommendation: 3 properties in .plist file

    set FacebookAppID,FacebookDisplayName,
    URL types->Item 0->URL Schemes set to facebookappId prefix with fb See

    -(void)shareOnFaceBook
    {
        //sample_video.mov is the name of file
        NSString *filePathOfVideo = [[NSBundle mainBundle] pathForResource:@"sample_video" ofType:@"mov"];
    
        NSLog(@"Path  Of Video is %@", filePathOfVideo);
        NSData *videoData = [NSData dataWithContentsOfFile:filePathOfVideo];
        //you can use dataWithContentsOfURL if you have a Url of video file
        //NSData *videoData = [NSData dataWithContentsOfURL:shareURL];
        //NSLog(@"data is :%@",videoData);
        NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   videoData, @"video.mov",
                                   @"video/quicktime", @"contentType",
                                   @"Video name ", @"name",
                                   @"description of Video", @"description",
                                   nil];
    
       if (FBSession.activeSession.isOpen)
       {
            [FBRequestConnection startWithGraphPath:@"me/videos"
                                     parameters:params
                                     HTTPMethod:@"POST"
                              completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                  if(!error)
                                  {
                                      NSLog(@"RESULT: %@", result);
                                      [self throwAlertWithTitle:@"Success" message:@"Video uploaded"];
                                  }
                                  else
                                  {
                                      NSLog(@"ERROR: %@", error.localizedDescription);
                                      [self throwAlertWithTitle:@"Denied" message:@"Try Again"];
                                  }
                              }];
        }
        else
        {
            NSArray *permissions = [[NSArray alloc] initWithObjects:
                                @"publish_actions",
                                nil];
            // OPEN Session!
            [FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone  allowLoginUI:YES
                                         completionHandler:^(FBSession *session,
                                                             FBSessionState status,
                                                             NSError *error) {
                                             if (error)
                                             {
                                                 NSLog(@"Login fail :%@",error);
                                             }
                                             else if (FB_ISSESSIONOPENWITHSTATE(status))
                                             {
                                                 [FBRequestConnection startWithGraphPath:@"me/videos"
                                                                              parameters:params
                                                                              HTTPMethod:@"POST"
                                                                       completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                                                                           if(!error)
                                                                           {
                                                                               [self throwAlertWithTitle:@"Success" message:@"Video uploaded"];
    
                                                                               NSLog(@"RESULT: %@", result);
                                                                           }
                                                                           else
                                                                           {
                                                                               [self throwAlertWithTitle:@"Denied" message:@"Try Again"];
    
                                                                               NSLog(@"ERROR: %@", error.localizedDescription);
                                                                           }
    
                                                                       }];
                                             }
                                         }];
            }
    }
    

    I GOT Error In first time of App runs:

     The operation couldn’t be completed. (com.facebook.sdk error 5.)
    

    It happens when facebook is being inited. Next time i open my app, it works fine, its always the first time. Tried everything in app, but it seems to be on the Facebook SDK side.

    Few causes for seeing com.facebook.sdk error 5:

    • Session is is not open. Validate.
    • Facebook has detected that you're spamming the system. Change video name.
    • Facebook has a defined limit using the SDK. Try a different app.
    • Wrong publish permission. Give publish_actions a spin.
    • many more....

提交回复
热议问题