2015-04-01 5 views
5

मैं आप फेसबुक दूत बस NSData वीडियो साझा कर सकते हैं देखा:साझा करने के लिए कैसे NSData या phasset वीडियो फेसबुक आईओएस एसडीके 4.0 का उपयोग कर FBSDKShareDialog

NSData *videoData = [NSData dataWithContentsOfURL:localVideoUrl]; 
[FBSDKMessengerSharer shareVideo:videoData withOptions:options]; 

लेकिन मैं जब फेसबुक फ़ीड को साझा करने के लिए एक ही कर रही कठिनाइयां आ रही हूँ स्थानीय वीडियो फ़ाइल या फासेट का उपयोग कर।

FBSDKShareVideo *video = [FBSDKShareVideo videoWithVideoURL:localVideoUrl]; 
FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init]; 
[content setVideo: video]; 
[FBSDKShareDialog showFromViewController:nil withContent:content delegate:self]; 

com.facebook.sdk: FBSDKErrorDeveloperMessageKey = केवल संपत्ति फ़ाइल यूआरएल देशी संवाद के लिए अनुमति दी जाती है

मैं कैसे होने के बारे में जाना होगा समान अच्छा एप्लिकेशन-स्विचिंग phasset वीडियो का उपयोग व्यवहार?

धन्यवाद!

उत्तर

12

नए फेसबुक एसडीके 4.0 के साथ, वीडियो संपत्ति यूआरएल के रूप में पारित किया जाना चाहिए। आपको अपने स्थानीय वीडियो पथ को एसेट्स लाइब्रेरी में कॉपी करना होगा और फेसबुक पर साझा करने के लिए जेनरेट किए गए यूआरएल का उपयोग करना होगा।

चरण 1:

NSURL *videoURL=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"IMG_1007" ofType:@"mp4"]]; 
[self saveToCameraRoll:videoURL]; 

चरण 2:

- (void)saveToCameraRoll:(NSURL *)srcURL 
{ 
    NSLog(@"srcURL: %@", srcURL); 

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    ALAssetsLibraryWriteVideoCompletionBlock videoWriteCompletionBlock = 
    ^(NSURL *newURL, NSError *error) { 
     if (error) { 
      NSLog(@"Error writing image with metadata to Photo Library: %@", error); 
     } else { 
      NSLog(@"Wrote image with metadata to Photo Library %@", newURL.absoluteString); 
      url_new = newURL; 
     } 
    }; 

    if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:srcURL]) 
    { 
     [library writeVideoAtPathToSavedPhotosAlbum:srcURL 
            completionBlock:videoWriteCompletionBlock]; 
    } 
} 

चरण 3:

FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];  
NSURL *videoURL = url_new; 
FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init]; 
video.videoURL = videoURL; 
FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init]; 
content.video = video; 
shareDialog.shareContent = content; 
shareDialog.delegate = self; 
[shareDialog show]; 

आप किसी भी अन्य प्रश्न है, तो कृपया मुझे पता है।

धन्यवाद!

+3

धन्यवाद:

आप नीचे दिए गए लाइन का उपयोग करना चाहिए! यह काम करेगा, लेकिन जिस वीडियो को मैं साझा करना चाहता हूं वह फोटो लाइब्रेरी में पहले से ही एक पीएचएसेट है। मैं एक और प्रतिलिपि बनाना नहीं चाहता। मैं स्थानीय रूप से अस्थायी रूप से PHAsset वीडियो को सहेज सकता हूं (मैंने कुछ अन्य संबंधित साझाकरण समस्याओं को कैसे हल किया) या इसके डेटा का उपयोग करें। लेकिन वास्तव में मेरे ज्ञान के लिए एलासेट में PHAsset को पुल करने का कोई तरीका नहीं है? फेसबुक एसडीके 4.0 एफबीएसडीकेशेयरडियलॉग का उपयोग कर फोटोकिट वीडियो साझा करने का कोई तरीका नहीं है? – Fabe

+0

यह नया यूआरएल उत्पन्न हुआ है !! 'संपत्ति-पुस्तकालय: //asset/asset.mp4? id = E121FF88-B0AB-4EE9-BD60-E676617BDC54 और ext = mp4' – jose920405

+0

कोई भी मोडल दिखाए बिना वीडियो को विवरण और शीर्षक डाले बिना यह करना संभव है? – jose920405

0

कृपया जांचें: 1) वीडियो आकार में 12 एमबी से कम होना चाहिए। 2) जो लोग साझा करते हैं उन्हें आईओएस क्लाइंट के लिए फेसबुक होना चाहिए, संस्करण 26.0 या उच्चतम होना चाहिए। सुझाव के लिए

NSURL *movieUrl = [info objectForKey:UIImagePickerControllerReferenceURL]; 
बजाय

NSURL *movieUrl = [info objectForKey:UIImagePickerControllerMediaURL]; 
संबंधित मुद्दे