使用swift SDK将视频发布到Facebook

时间:2018-01-24 21:04:07

标签: facebook swift4

我一直试图弄清楚这一天和昨天晚上,但没有运气。我可以确认LinkShareContent可以工作,但是当我尝试共享视频文件时。它给了我一个错误代码"保留"但没有别的。

这是链接的代码

var content = LinkShareContent(url: URL(string: "https://google.com")!)
showShareDialog(content)

这是视频的代码根本不起作用。

 let video = Video(url: url)
 var content = VideoShareContent(video: video, previewPhoto: Photo(image: inProgressItem.firstImage, userGenerated: true))
 showShareDialog(content)

这将显示控制器上的共享表

  Func showShareDialog<C: ContentProtocol>(_ content: C, mode: ShareDialogMode = .shareSheet) {
        let dialog = ShareDialog(content: content)
        dialog.presentingViewController = self
        dialog.mode = mode

        do{
            try dialog.show()
        }
        catch (let error){
            print(error)
        }
    }

我已确认该视频位于本地路径上,并且我正在iPhone 8上测试应用程序11.1.2

1 个答案:

答案 0 :(得分:2)

有完全相同的问题。它适用于VideoShareContent,但不适用于URL

解决方案: 确保您获得视频的正确"UIImagePickerControllerReferenceURL"。正确的是来自info委托方法的UIImagePickerController字典中的密钥func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) { picker.dismiss(animated: true) if let videoURL = info["UIImagePickerControllerReferenceURL"] as? URL { let video = Video(url: videoURL) let content = VideoShareContent(video: video) let dialog = ShareDialog(content: content) dialog.failsOnInvalidData = true dialog.mode = .native dialog.presentingViewController = self do { try dialog.show() } catch { print(error) } } } 的网址。

工作代码:

reserved

额外信息:最初我没有使用此键“UIImagePickerControllerReferenceURL”,因为它是deprecated。 Apple建议使用UIImagePickerControllerPHAsset代替。但是那里的URL也会返回ab.c错误。另一个尝试是使用键“UIImagePickerControllerMediaURL”,但它也没有成功。