Search code examples
iosios6

video share on facebook


I am making a test app through that I want to post a video on facebook. I am using latest sdk of facebook. But I am not able to post it on facebook. The video is coming from web service.
How to convert video url in nsdata and mu code is below

     NSString *astrUserid=[[mutTimeline objectAtIndex:indexpath] objectForKey:@"user_id"];
            NSString *astrImageid=[[mutTimeline objectAtIndex:indexpath] objectForKey:@"image_id"];
            NSString *astrExt=[[mutTimeline objectAtIndex:indexpath] objectForKey:@"ext"];
            NSString *aStrDisplyimage=[NSString stringWithFormat:@"http://followme.pmcommu.com/audio/user/%@-%@.%@",astrUserid, astrImageid,astrExt ];
            NSURL *aimageurl=[NSURL URLWithString:aStrDisplyimage];


            NSString *filePathOfVideo = [aimageurl path];

            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 am new for that can any one help me please


Solution

  • or this will help you for upload and streaming video, i think

    ACAccountStore *accountStore = [[ACAccountStore alloc] init];
    
    ACAccountType *facebookAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
    
    // Specify App ID and permissions
    NSDictionary *options = @{ACFacebookAppIdKey: FACEBOOK_ID,
                              ACFacebookPermissionsKey: @[@"publish_stream", @"video_upload"],
                              ACFacebookAudienceKey: ACFacebookAudienceFriends}; // basic read permissions
    
    [accountStore requestAccessToAccountsWithType:facebookAccountType options:options completion:^(BOOL granted, NSError *e) {
        if (granted) {
            NSArray *accountsArray = [accountStore accountsWithAccountType:facebookAccountType];
    
            if ([accountsArray count] > 0) {
                ACAccount *facebookAccount = [accountsArray objectAtIndex:0];
    
    
                NSDictionary *parameters = @{@"description": aMessage};
    
    
                SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                                requestMethod:SLRequestMethodPOST
                                                                          URL:[NSURL URLWithString:@"https://graph.facebook.com/me/videos"]
                                                                   parameters:parameters];
    
                [facebookRequest addMultipartData: aVideo
                                         withName:@"source"
                                             type:@"video/mp4"
                                         filename:@"video.mov"];
    
                facebookRequest.account = facebookAccount;
    
    
                [facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
                    if (error == nil) {
                        NSLog(@"responedata:%@", [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]);
                    }else{
                        NSLog(@"%@",error.description);
                    }
                }];
            }
        } else {
            NSLog(@"Access Denied");
            NSLog(@"[%@]",[e localizedDescription]);
        }
    }];