【问题标题】:Facebook sharing images from an iOS appFacebook 分享来自 iOS 应用程序的图像
【发布时间】:2016-04-14 02:34:48
【问题描述】:
我在通过 iOS 应用在 Facebook 上分享图片时遇到问题。
(See this post)
我读到在分享之前预先填写文本是违反 Facebook 政策的。
预填充图片是否也违反了他们的政策?
我可以理解,预填充可能会导致夸大其词。但是在一个处理图片的应用程序中,如果我不能通过预加载让用户轻松分享他的图片;在我的应用中添加 FB 按钮有什么意义?
【问题讨论】:
标签:
ios
facebook
facebook-graph-api
【解决方案1】:
据我了解,我们无法预填充文本,但是,可以将您的应用程序中的照片分享到 Facebook,并且没有任何限制。正如他们所说,只有一些要求
- 照片大小必须小于 12MB
- 人们需要安装原生 Facebook for iOS 应用,版本 7.0 或更高版本。
这里是使用FBSDKSharePhotoContent通过FB分享照片的示例代码
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = info[UIImagePickerControllerOriginalImage];
FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init];
photo.image = image;
photo.userGenerated = YES;
FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
content.photos = @[photo];
...
}
参考:https://developers.facebook.com/docs/sharing/ios
【解决方案2】:
我还尝试了解如何将图像分享到 Facebook,但他们的文档对我没有多大帮助 -> https://developers.facebook.com/docs/swift/sharing/content-types/
最后我设法做到了:
import FBSDKCoreKit
import FBSDKLoginKit
import FBSDKShareKit
private func shareInFacebook() {
let photo = SharePhoto(image: image!, userGenerated: true)
let content = SharePhotoContent()
content.photos = [photo]
let showDialog = ShareDialog(fromViewController: self, content: content, delegate: self)
if (showDialog.canShow) {
showDialog.show()
} else {
self.view.makeToast("It looks like you don't have the Facebook mobile app on your phone.")
}
}
希望这会对某人有所帮助;)