Плагин com.apple.share.Facebook.post недействителен
В моем приложении я использую следующий код, который позволяет обмениваться изображением с текстом:
- (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
Я тестировал его на нескольких устройствах, насколько я мог видеть, это происходит только на моем iPhone 6 с установленной iOS 8.1.
Кто-нибудь знает, что означает это сообщение и как его не показывать?
Ответы
Ответ 1
Вот правильный ответ ios plugin com.apple.share.Facebook.post не показывает предоставленный текст. Это облом.
Я боюсь вам сказать, вы не можете публиковать текст в Facebook программно. Это новый запрет Facebook, запрещающий "предварительно заполненный" обмен Facebook. Вот почему новые версии iOS не отображают ваш текст, даже жестко он правильно предоставлен (и работает на Twitter и в других вариантах обмена).
Для получения дополнительной информации см. https://developers.facebook.com/docs/apps/review/prefill
Ответ 2
Это ужасное сообщение об ошибке Apple. Перейдите в настройки и проверьте свои учетные записи на facebook/twitter. Вы заметите, что у них нет пароля (возможно, это происходит после обновления до 8.1). Просто обновите информацию об учетной записи, и сообщение исчезнет, и ваше сообщение/твит будет работать.
Ответ 3
В моем случае это связано с тем, что приложение Facebook заменяет расширение Facebook на уровне системы iOS на обычное. Случай запускается следующим образом:
- Загрузите приложение и поделитесь Facebook (обратите внимание: приложение Facebook в настоящее время
установлен)
- Выход из приложения
- Удалить приложение Facebook с устройства
- Открытое приложение снова (все еще активно в памяти) и делится с Facebook...
потерпеть неудачу! Приложение ищет расширение, которое было
удалено вместе с приложением Facebook.
Убейте и перезапустите приложение, перейдите на Facebook. Вуаля! Приложение загрузило расширение расширения iOS Facebook по умолчанию и снова работает.
Head scratcher относительно того, почему Apple разрешает Facebook придерживаться такого подхода, а не принуждать их заменять расширение Facebook по умолчанию или просто не позволяет им вводить свои собственные, только если их приложение установлено.
Ответ 4
Это также происходит, когда вы пытаетесь установить URL
с помощью метода addURL:
для SLServiceTypeTwitter
в SLComposeViewController
. Удаление этого вопроса устраняет проблему.
Ответ 5
Facebook обновил свою политику. С этим он больше не работает. вам нужно интегрировать sdk в Facebook. вот соответствующие ссылки для тех, кто хочет поделиться имиджем или отправить сообщение из вашего приложения в Facebook
https://developers.facebook.com/docs/sharing/opengraph/ios#sharedialog
Ответ 6
Я столкнулся с той же проблемой. Я использовал контроллер активности и SLComposeViewController, и в обоих случаях получил ту же ошибку, даже если я не устанавливаю программный код text/url и т.д. Для fb. Поэтому, по моему мнению, в моем случае речь шла не о новой политике facebook, о которой упоминалось выше в комментарии.
Чтобы избежать каких-либо неудобств в будущем, я исправил его с помощью sharebook 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). Надеюсь, что это поможет вам
Бест,