【问题标题】:How to share photo to Facebook within iOS app, when Facebook app is not installed on the phone?当手机上没有安装 Facebook 应用程序时,如何在 iOS 应用程序中将照片分享到 Facebook?
【发布时间】:2017-12-07 17:22:01
【问题描述】:

我正在使用FBSDKShareKit (4.22.1),我正在尝试使用以下代码分享照片:

let photo = FBSDKSharePhoto()
photo1.imageURL = URL(string: "sample url")
photo.isUserGenerated = false  
let photoContent = FBSDKSharePhotoContent()
photoContent.photos = [photo]
FBSDKShareDialog.show(from: self, with: photoContent, delegate: nil)

但它仅在手机上安装了本机 Facebook 应用程序时才有效。 我还尝试使用 Share Button 而不是 Share Dialog 来显示内容,例如:

var shareButton = FBSDKShareButton()
shareButton.shareContent = photoContent
shareButton.center = self.view.center
self.view.addSubview(shareButton)

如果应用程序也没有安装,它也不起作用。

我想要我在我的应用程序中使用的 FBSDK,在未安装 Facebook 应用程序时打开 Safari,它默认为 FBSDKShareLinkContent 打开 safari,但不适用于 FBSDKSharePhotoContent。 有谁知道是什么问题?

【问题讨论】:

    标签: ios swift facebook swift3 facebook-share


    【解决方案1】:

    我使用 Graph API 实现了另一种分享照片的方法。这很有帮助。这里是a link。 您只需要获取用户对 publish_actions 的权限 在发布之前。 也没有安装本机 facebook 应用程序。刚刚通过浏览器登录。

    【讨论】:

    • 是的,你是对的。但我使用具有读取权限的登录,例如:loginManager.logIn(withReadPermissions: ["email"], from: self),我不能同时使用读取权限和发布权限,你知道吗?
    • @Mina 我已经完成了这个代码if((FBSDKAccessToken.current()) != nil){ FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "accounts,email"]).start(completionHandler: { (connection, result, error) -> Void in if (error == nil){ print(result) } }) } 并且我能够访问电子邮件 ID,我不知道这是否是正确的解决方案
    【解决方案2】:

    嗯,我在Facebook developer website找到了答案,就是:

    照片

    人们可以使用分享功能将您应用中的照片分享到 Facebook 对话框或带有自定义界面:

    照片大小必须小于 12MB

    人们需要安装原生 Facebook for iOS 应用,版本 7.0 或更高版本

    您也可以请求“publish_actions”,您需要登录两次,首先使用 readPermission 登录电子邮件,然后当用户想要分享帖子时 loginWithPublishPermission 用于“publish_actions”。关键是您必须首先在您的 Facebook 开发者帐户中添加“publish_actions”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 2012-02-17
      相关资源
      最近更新 更多