SLComposeViewController不会为SLServiceTypeFacebook

时间:2015-04-25 20:44:14

标签: ios facebook swift social

它似乎是社交框架中的一个错误,它不会为Facebook服务类型设置初始文本。这是我使用Swift的实现:

let view = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
if view.setInitialText("Some text") {
    NSLog("Success")
} else {
    NSLog("Failure")
}
view.addURL(NSURL(string: "https://google.ro"))
self.presentViewController(view, animated: true, completion: nil)

工作原理:

  • 网址显示Facebook和Twitter
  • initialText仅适用于Twitter

什么不起作用

  • 即使上面的代码输出"成功"
  • ,initialText也不会出现在Facebook上

更新2

似乎Facebook真的不希望开发人员在共享时设置消息的初始文本,因为即使使用他们的SDK也是如此。在应用程序中,我正在实施我从应用程序中选择的屏幕截图(上传为图像),以便让用户在Facebook上分享他们的进度。

更新

解决方案是使用适用于iOS的Facebook SDK,Facebook不再支持社交框架的功能。

3 个答案:

答案 0 :(得分:14)

不是错误,Facebook不再允许它。

iOS共享表的使用受Facebook平台政策的约束,包括第2.3节规定应用程序可能不会预先填写。在共享表的上下文中,这意味着应用程序可能不会预先填写共享表的initialText字段,其中包含之前使用该应用程序的人未输入的内容。

答案 1 :(得分:4)

Facebook不允许再填充消息。 有关详细信息here

如果您使用原生Facebook sdk,将不会解决您的问题,因为Facebook不会发布您的应用。 因此,正如Facebook指南所述,您拥有的唯一解决方案是:

  1. 使用用户在应用流程中手动输入的内容填充用户消息参数。
  2. 您的应用的作曲家可以包含一个号召性用语,当人们开始撰写帖子时,该号召性用语就会消失。例如,Facebook的作曲家使用灰度文本来询问“你的想法是什么?”,当人们开始写作时就会消失。

答案 2 :(得分:3)

我认为这是一个iOs 8.3错误。 在我更新到该版本之前,它正常工作。 : - (