Après l'intégration avec Facebook lorsque j'appuie sur Continuer avec le bouton FaceBook sur le simulateur, cette fenêtre s'affiche sur le simulateur. app, et je ne reçois aucune donnée utilisateur avec.
Voici les étapes que j'ai faites

Ajout du code suivant dans AppDelegate
Selon le document Facebook, nous devons importer FacebookCore dans AppDelegate lorsque nous l'importons, nous recevons un avertissement Aucun module de ce type 'FacebookCore'
import FBSDKCoreKit
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
return true
}
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool {
ApplicationDelegate.shared.application(
app,
open: url,
sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
annotation: options[UIApplication.OpenURLOptionsKey.annotation]
)
}
Ajout du code suivant dans SceneDelegate
Selon le document Facebook, nous devons importer FacebookCore dans SceneDelegate lorsque nous l'importons, nous recevons un avertissement Aucun module de ce type 'FacebookCore'
import FBSDKCoreKit
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url else {
return
}
ApplicationDelegate.shared.application(
UIApplication.shared,
open: url,
sourceApplication: nil,
annotation: [UIApplication.OpenURLOptionsKey.annotation]
)
}
Ajout du code suivant dans ViewController
Selon le document Facebook, nous devons importer FacebookLogin dans ViewController lorsque nous l'importons, nous recevons un avertissement Aucun module de ce type 'FacebookLogin'
import FBSDKLoginKit
class ViewController: UIViewController, LoginButtonDelegate
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
if let token = AccessToken.current,
!token.isExpired {
let token = token.tokenString
let request = FBSDKLoginKit.GraphRequest(graphPath: "me", parameters: ["fields": "email,name"], tokenString: token, version: nil, httpMethod:.get)
request.start { connecton, result, error in
print("\(result)")
}
} else{
let loginButton = FBLoginButton()
loginButton.center = view.center
loginButton.delegate = self
loginButton.permissions = ["public_profile", "email"]
view.addSubview(loginButton)
}
}
func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) {
let token = result?.token?.tokenString
let request = FBSDKLoginKit.GraphRequest(graphPath: "me", parameters: ["fields": "email,name"], tokenString: token, version: nil, httpMethod:.get)
request.start { connecton, result, error in
print("\(result)")
}
}
J'ai essayé l'étape 2 à partir de cela, mais j'obtiens cette erreur lors de la configuration de l'environnement de développement.
Solution du problème
Je pense que vous vous êtes trompé d'étape de connexion à Facebook.
étape 1 :- installez les pods ci-dessous
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
étape 2:- ajoutez les informations d'identification facebook nécessaires (facebook App Id) et CFBundleURLTypes
dans info.plist
le fichier
étape 3:- importez FacebookCore
et FacebookLogin
dans votre UIViewController
où vous voulez la fonction de connexion Facebook.
appelez cette méthode pour vous connecter avec facebook.
func setupFacebookLogin(){
let loginManager = LoginManager()
loginManager.logOut()
loginManager.logIn(permissions: ["public_profile", "email"], from: self, handler: { result, error in
if error!= nil {
print("ERROR: Trying to get login results")
} else if result?.isCancelled!= nil {
print("The token is \(result?.token?.tokenString?? "")")
if result?.token?.tokenString!= nil {
print("Logged in")
let graphRequest: GraphRequest = GraphRequest(graphPath: "me", parameters: ["fields": "id, first_name, middle_name, last_name, name, picture, email, gender, birthday"])
graphRequest.start { _, result, error in
if error!= nil {
let data: [String: AnyObject] = result as! [String: AnyObject]
print("Facebook user data - ",data)
}
} else {
print("Cancelled")
}
}
})
}
Aucun commentaire:
Enregistrer un commentaire