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" />
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:
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 ...