web-dev-qa-db-fra.com

Connectez-vous avec le dernier sdk de Facebook si l'installation de l'application native, puis la boîte de dialogue ne s'ouvre pas dans android

J'utilise le dernier Facebook-sdk pour me connecter avec Facebook

 implementation 'com.facebook.Android:facebook-login:[5,6)'

Essayez de vous connecter avec Facebook en utilisant custom button J'obtiens également cette erreur dans Facebook-Android-sdk Problème github https://github.com/facebook/facebook-Android-sdk/issues/58 ce problème est résolu ou non.

Je veux ouvrir la boîte de dialogue si l'application native de Facebook est installée, pour cela je logout en utilisant LoginManager.getInstance().logOut()

J'utilise le gestionnaire de connexion par défaut comme LoginManager.getInstance(), puis je me connecte et me déconnecte, mais lorsque je vérifie le jeton après la déconnexion comme ceci AccessToken.getCurrentAccessToken() il existe toujours

Voici mon code:

callbackManager =
    CallbackManager.Factory.create()

    LoginManager.getInstance().logOut()
loginManager = LoginManager.getInstance()

LoginManager.getInstance()
    .registerCallback(callbackManager, object : FacebookCallback<LoginResult> {
        override fun onSuccess(loginResult: LoginResult) {
            val graphRequest = GraphRequest.newMeRequest(loginResult.accessToken)
            { jsonObj, _ ->

            }
            val parameters = Bundle()
            parameters.putString("fields", "id,name,email")
            graphRequest.parameters = parameters
            graphRequest.executeAsync()
        }

        override fun onCancel() {
        }

        override fun onError(error: FacebookException) {
            var msg = ""

        }
    })
loginManager.logInWithReadPermissions(
    this@SignUpActivity,
    listOf("email", "public_profile")
)

Manifest fichier

<meta-data Android:name="com.facebook.sdk.ApplicationId"
    Android:value="@string/facebook_app_id"/>

<activity Android:name="com.facebook.FacebookActivity"
    Android:configChanges=
        "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    Android:label="@string/app_name" />
3
Dinesh

Enfin, j'ai trouvé la solution après de nombreuses recherches et lu de nombreuses réponses.

Si votre application est en mode de développement , générez Hash de clé de développement

Pour Windows , utilisez la commande suivante:

  • Téléchargez openSSl depuis openssl-for-windows la bibliothèque openssl et extrayez-la.
  • Créez un dossier - OpenSSL dans C:/et copiez-y le code extrait.
  • Pour générer un hachage de clé de développement , exécutez la commande suivante dans une invite de commande dans le dossier Java SDK
  • Changer USERNAME avec votre nom d'utilisateur
  • Cette commande générera un hachage de clé de 28 caractères unique à votre environnement de développement. Copiez et collez-le dans le champ du site développeur Facebook

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.Android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64


Si votre application est en mode Release , alors générez un Release Key Hash

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64

J'espère que cela vous fera gagner du temps ...

0
Dinesh