Я использую Facebook SDK для iOS, и он отлично работает на iOS 10, но когда я обновляю свой телефон до iOS 11, общий ресурс facebook больше не работает. пожалуйста, помогите, заранее спасибо.
Поделиться с Facebook больше не работает на iOS 11
Ответы (2)
К сожалению, с обновлением iOS 11 службы социальных сетей (Facebook, Twitter, Vimeo и Flickr), которые раньше имели единый вход для общесистемной интеграции, были удалены.
Вместо этого фрагмента кода для iOS 10 и более ранних версий:
let viewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
viewController.add(imageView.image!)
viewController.add(URL(string: "http://www.example.com/"))
viewController.setInitialText("Text to post!")
self.present(viewController!, animated: true, completion: nil)
Вы можете размещать сообщения на Facebook с помощью FBSDKGraphRequest. а>.
Сначала создайте свое приложение из консоли разработчика Facebook. После этого настройте проект Xcode (следуя инструкциям здесь: https://developers.facebook.com).
Пользователь должен быть зарегистрирован перед публикацией:
let login: FBSDKLoginManager = FBSDKLoginManager()
login.logIn(withPublishPermissions: ["publish_actions"], from: self) { (result, error) in
if (error != nil) {
print("publish_actions: \(error!)")
} else if (result?.isCancelled)! {
print("publish_actions: Canceled")
} else if (result?.grantedPermissions.contains("publish_actions"))! {
print("publish_actions: permissions granted: \(String(describing: result?.token.tokenString))")
UserDefaults.standard.set(result?.token.tokenString, forKey: "facebook_token")
}
}
После регистрации сохраните токен и используйте его для публикации сообщения через FBSDKGraphRequest:
FBSDKGraphRequest.init(graphPath: "me/feed",
parameters: ["message": "text to post on Facebook"],
tokenString: "token",
version: "v2.10",
httpMethod: "POST").start(completionHandler: { (connection, result, error) -> Void in
if let error = error {
print("Error: \(error)")
} else {
print("Posted successfully!")
}
})
Надеюсь, это поможет.
Эта проблема для iOS 11 с Facebook Share (в моем случае FBSDKShareDialog в Objective-c) устраняется путем обновления до последних фреймворков API Facebook. Через стручки это в настоящее время выглядит следующим образом:
Подфайл
pod 'FBSDKCoreKit', '~> 4.27.0'
pod 'FBSDKLoginKit', '~> 4.27.0'
pod 'FBSDKShareKit', '~> 4.27.0'
В командной строке при использовании «поиска модуля» будет показана последняя версия модуля. Например, поиск модуля FBSDKShareKit.