Я унаследовал приложение и пытаюсь понять точные различия в конфигурации между тем, что хочет Facebook, и тем, что в настоящее время реализовано.
In working to create a great Platform experience for everyone, we ask developers to ensure the apps they build comply with our Platform Policies. Your app APPNAME (AppId: APPID) doesn't comply with the following:
Platform Policy 8.2: Native iOS and Android apps that implement Facebook Login must use our official SDKs for Login.
Please make sure your iOS app is using the most recent version of our SDK for Login. You can find more information on our iOS SDK for Login and other Login-related products here: https://developers.facebook.com/docs/facebook-login/ios.
РЕДАКТИРОВАТЬ: Кроме того, Facebook также сказал мне следующее:
Thank you for reaching out and for all actions taken so far. I am still able to view the FB login using unofficial SDK [refer to screencast].
Я предполагаю, что это связано с настройкой OAuth2 в службе аутентификации.
Это настроено так:
private init() {
let keycloakHost = ServerConfigurator.sharedInstance.keycloakUrl
config = KeycloakConfig(
clientId: "app-name-mobile",
host: keycloakHost,
realm: "master",
isOpenIDConnect: true)
config.webView = .safariViewController
config.webViewHandler = self.webViewHandler
oauthModule = KeycloakOAuth2Module(config: config, session: KeycloakClient.session)
}
Принимая во внимание, что aerogear oauth docsПохоже, что для Facebook требуется другая конфигурация:
https://github.com/aerogear/aerogear-ios-oauth2
let facebookConfig = FacebookConfig(
clientId: "YYY",
clientSecret: "XXX",
scopes:["photo_upload, publish_actions"]
)
let oauth2Module = AccountManager.addFacebookAccount(config: facebookConfig)
let http = Http()
http.authzModule = oauth2Module
http.request(method: .get, path: "/get", completionHandler: {(response, error) in
// handle response
})
Похоже, что первоначальный разработчик передает данные в веб-представление Safari, а не использует методыожидается библиотекой.Я не совсем, почему это тоже.Я думаю, что на самом деле это может быть причиной проблемы, с которой Facebook сталкивается с приложением.
Может кто-нибудь пролить свет на эту ошибку?Я пытаюсь наиболее эффективно справиться с этим, так как есть очень быстрое ограничение по времени (неделя), и я даже не уверен, пойду ли я правильным путем здесь.
Любой совет очень важенприветствуется.
РЕДАКТИРОВАТЬ: я сейчас использую эту версию:
https://github.com/maciej-gad-benefex/aerogear-ios-oauth2
РЕДАКТИРОВАТЬ: Это также необходимо интегрировать с провайдером идентификации Keycloak