GOOGLE ADS

mercredi 4 mai 2022

L'intégration de Facebook avec ios échoue avec un message d'erreur sur le simulateur

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.cette

Voici les étapes que j'ai faites

  • Installation du pod : pod 'FBSDKLoginKit'

  • Ajout de l'ID de bundle dans le guide de démarrage rapide de developer.facebook

  • L'option Activer le signe unique est sélectionnée sur NON

  • Ajout du code suivant tel qu'il se trouve dans info.plist
    info.plist

  • 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 CFBundleURLTypesdans info.plistle fichier

    entrez la description de l'image ici

    entrez la description de l'image ici

    étape 3:- importez FacebookCoreet FacebookLogindans votre UIViewControlleroù 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

    Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

    Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...