插件com.apple.share.Facebook.post无效

时间:2014-12-06 13:38:24

标签: ios objective-c

在我的应用中,我使用以下代码,允许与文本共享图像:

- (IBAction)sharePressed:(id)sender {
    UIImage *postingImage = [UIImage imageWithContentsOfFile:self.filepath];
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"Lorem ipsum", postingImage] applicationActivities:nil;
    [self presentViewController:activityViewController animated:YES completion:nil];
}

将图像发布到Facebook工作正常,它出现在我的FB墙上,但是在我的控制台中,我收到以下消息:

plugin com.apple.share.Facebook.post invalidated

我已经在几台设备上测试了它,据我所知,它只发生在安装了iOS 8.1的iPhone 6上。

任何人都知道该消息的含义以及如何阻止它显示?

6 个答案:

答案 0 :(得分:15)

这是正确答案ios plugin com.apple.share.Facebook.post do not show provided text。这真是一场无赖。

  

我不敢告诉你,你不能以编程方式将文字发布到Facebook。这是一个新的Facebook禁令,禁止"预先填写" Facebook分享。这就是为什么较新版本的iOS不会显示您的文本,甚至是正确提供的文本(并且可以在Twitter和其他共享选项中使用)。

     

有关详细信息,请参阅https://developers.facebook.com/docs/apps/review/prefill

答案 1 :(得分:3)

这是Apple发出的可怕错误消息。转到设置并检查您的Facebook / Twitter帐户。您会注意到他们没有设置密码(更新到8.1后可能会发生这种情况)。只需更新帐户信息,邮件就会消失,您的帖子/推文也会有效。

答案 2 :(得分:3)

在我的情况下,这与Facebook应用程序用自定义的Facebook应用程序取代iOS系统级别的Facebook共享扩展程序有关。案例触发如下:

  1. 加载应用并分享到Facebook(注意:Facebook应用目前是 安装)
  2. 退出应用
  3. 从设备
  4. 删除Facebook应用
  5. 再次打开应用程序(仍然在内存中活动)并分享到Facebook ... 失败!该应用正在寻找一个分享扩展 与Facebook应用程序一起卸载
  6. 杀死并重新启动应用,分享到Facebook。瞧!该应用已加载默认的iOS Facebook共享扩展程序,它可以再次运行。

    为什么苹果让Facebook采用这种方法,而不是强迫他们取代默认的Facebook共享扩展,或者只是在他们的应用程序已经安装的情况下不允许他们注入自己的方法,这是一个很大的问题。

答案 3 :(得分:1)

当您尝试在URL中使用addURL: SLServiceTypeTwitter方法设置SLComposeViewController时,也会发生这种情况。删除它可以解决问题。

答案 4 :(得分:0)

Facebook更新了他们的政策。它不再适用于此。你需要整合Facebook sdk才能这样做。以下是那些想要分享图片或从您的应用发布到Facebook

的人的相关参考资料

https://developers.facebook.com/docs/sharing/opengraph/ios#sharedialog

答案 5 :(得分:0)

我遇到了同样的问题。我正在使用活动控制器 SLComposeViewController ,并且在两种情况下都得到了相同的错误,即使我没有以编程方式为fb设置任何text / url等。所以根据我的说法,就我而言,这不是上面评论中提到的新Facebook政策的问题。

为了避免将来造成任何不便,我使用 facebook share SDK (现在不使用SLComposeViewController或activityViewController)修复它。 FBSdk集成在我的iOS项目中,我用于共享目的的代码如下:

@IBAction func shareOnFaceBook(sender: AnyObject) {

    var content = FBSDKShareLinkContent()
    content.contentURL = urlToShare()      //method returning the url
    content.contentDescription = textToShare()    //method returning text(string) to share

    var dialog = FBSDKShareDialog()
    dialog.mode = FBSDKShareDialogMode.Automatic
    dialog.shareContent = content
    dialog.delegate = self
    dialog.fromViewController = self
    dialog.show()
}

它将打开fb应用程序(如果已安装),否则将打开Safari(fb web应用程序)。希望它能帮到你

最佳,