我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.
由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.
到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.
- let video_content : FBSDKShareVideoContent = FBSDKShareVideoContent()
- video_content.video = FBSDKShareVideo(videoURL: getVideoURL())
- let button : FBSDKShareButton = FBSDKShareButton()
- button.shareContent = video_content
- button.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 100) * 0.5,50,100,25)
- self.view.addSubview(button)
我的getVideoURL()函数返回一个NSURL,它肯定包含视频的url(我已将其打印到控制台并检查它指向我之前存储在文件夹中的视频).
我看了社交框架,遗憾的是我无法使用它,因为它似乎只用于分享照片而不能分享视频.
我正在使用最新版本的Xcode,Swift和Facebook SDK.
解决方法
@AngryDuck
试试这个代码它会起作用
- func uploadVideoOnFacebook() {
- var pathURL: NSURL
- var videoData: NSData
- pathURL = NSURL(string: self.strUploadVideoURL)!
- videoData = NSData.dataWithContentsOfURL(NSURL(string: self.strUploadVideoURL)!)
- NSString * strDesc
- strDesc = txtCaption.text!
- var videoObject: [NSObject : AnyObject] = ["title": "application Name","description": strDesc,pathURL.absoluteString(): videoData]
- var uploadRequest: FBRequest = FBRequest(graPHPath: "me/videos",parameters: videoObject,HTTPMethod: "POST")
- self.view!.userInteractionEnabled = false
- uploadRequest.startWithCompletionHandler({(connection: FBRequestConnection,result: AnyObject,error: NSError) -> Void in
- if !error {
- NSLog("Success")
- }
- else {
- NSLog("Error")
- }
- })
- }