ios - 通过 ios 应用程序将照片分享到 Facebook 后无法获取结果帖子 ID(Swift 和 FBSDK4.0.1)

标签 ios facebook swift photo facebook-ios-sdk

我正在编写一个 iOS 应用程序来进行照片共享。

使用技术 Swift 和 FBSDK 4.0.1

通过FBSDKSharePhotoContent()发现图片分享 无法从方法 didCompleteWithResults 内的 FBSDKSharingDelegate 中的结果对象取回任何帖子 ID。
结果对象包含空行:

[:]

但是,通过FBSDKShareLinkContent()分享的URL 可以从结果对象中取回帖子 ID。 类似的东西:

[postId: 10000844250000_146108069750000]


我的部分核心代码:

  1. 图像选取器 Controller (UIImagePickerControllerDelegateUINavigationControllerDelegate)

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
    
    var theImage:UIImage = info[UIImagePickerControllerOriginalImage] as! UIImage
    uploadImage.image = theImage
    self.dismissViewControllerAnimated(false, completion: nil)
    }
    


  1. 选择照片后,点击自定义分享按钮

     @IBAction func postButtonClick(sender: AnyObject) {
    
       let photoContent = FBSDKSharePhotoContent()
    
       let photo : FBSDKSharePhoto = FBSDKSharePhoto()
       photo.image = uploadImage.image
       photo.userGenerated = true
    
       photoContent.photos = [photo]
    
       FBSDKShareDialog.showFromViewController(self, withContent: photoContent, delegate:self)
    }
    
  2. Facebook FBSDKSharingDelegate

     func sharer(sharer: FBSDKSharing!, didCompleteWithResults results: [NSObject: AnyObject])
     {
        println("sharer didCompleteWithResults, results.count\(results.count)")
        println(results)
        // still cannot get post id from photo upload
     }
    
     func sharer(sharer: FBSDKSharing!, didFailWithError error: NSError!) {
    
        println("sharer NSError")
        println(error.description)
    
     }
    
     func sharerDidCancel(sharer: FBSDKSharing!) {
    
        println("sharerDidCancel")
    
     }
    

我会感谢你的帮助。

最佳答案

    let photo = FBSDKSharePhoto()
    photo.image = chosenImage
    photo.isUserGenerated = false
    let photoContent = FBSDKSharePhotoContent()
    photoContent.photos = [photo]
    let shareApiInstance = FBSDKShareAPI()
    shareApiInstance.message = "customized facebook content"
    shareApiInstance.shareContent = photoContent
    shareApiInstance.delegate = self
    shareApiInstance.share()

//委托(delegate)方法

func sharer(_ sharer: FBSDKSharing!, didCompleteWithResults 结果: [AnyHashable : Any]!) {
print("代表叫到")

    let resultsInfo = results as! [String : Any]
    print(resultsInfo["postId"] as! String)
}

func sharer(_ sharer: FBSDKSharing!, didFailWithError error: Error!) {
    print("sharer NSError")
    print(error.localizedDescription)
}

func sharerDidCancel(_ sharer: FBSDKSharing!) {
    print("sharerDidCancel")
}

通过上述解决方法,您可以访问 postId。

关于ios - 通过 ios 应用程序将照片分享到 Facebook 后无法获取结果帖子 ID(Swift 和 FBSDK4.0.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695785/

相关文章:

ios - 如何在 2 级深 child 上使用 queryOrderedByValue?

c# - Xamarin iOS 导航栏中 UIBarButtonItem 之间的间距过大

iphone - 是否有比 GKSession 更可靠的替代方案,允许 3 个以上设备之间进行 P2P?

java - Swift 在 Kotlin(或 Java)中的结构?同一类的多个实例,改变其变量

ios - 通知警报禁用 swift

后台 iOS 日历监控 - 它是如何完成的?

design-patterns - 安全地检查用户是否登录到另一个域 (JSONP)

android - 为什么 Facebook 游戏请求没有显示在收件人个人资料中?

c# - 使用 C# 从 facebook 获取 FB 页面数据

ios - 添加约束后 View 及其 subview 消失