Подтвердить что ты не робот

Плагин 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.

Кто-нибудь знает, что означает это сообщение и как его не показывать?

4b9b3361

Ответ 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). Надеюсь, что это поможет вам

Бест,