7
votes

Connexion Facebook, problème avec la clé de hachage - Flutter, Comment générer un Hashkey Facebook en flutter?

Une fenêtre apparaît avec l'entrée de Facebook et lorsque vous cliquez, continuez à générer une erreur

SERVER_ERROR: [code] 1349195 [message]: le hachage de la clé ne correspond pas l'un des hachages enregistrés

login() async {
    final facebookLogin = new FacebookLogin();
    final result = await facebookLogin.logInWithReadPermissions(['email']);
    switch (result.status) {
      case FacebookLoginStatus.loggedIn:
        print(result.accessToken.token);
        Navigator.of(context).pushReplacementNamed('/home_screen');
        break;
      case FacebookLoginStatus.cancelledByUser:
        print('CANCELED BY USER');
        break;
      case FacebookLoginStatus.error:
        print(result.errorMessage);
        break;
    }
  }


2 commentaires

Vous devez mettre à jour les paramètres de votre application sur developer.facebook.com avec le hachage de clé approprié


Vous devez fournir votre clé de hachage de développement dans le panneau des développeurs Facebook. Jetez un œil ici


4 Réponses :


1
votes

Vous devez ajouter la clé de hachage à la page de votre application sur facebook.

Pour obtenir la clé de hachage, ouvrez la fin de cmd, entrez (téléchargez cygwin si vous ne l'avez pas)

"C:\Program Files\Java\jdk1.8.0_121\bin\keytool.exe" -exportcert -alias androiddebugkey -keystore "C:\Users\username\.android\debug.keystore" | "C:\cygwin64\bin\openssl.exe" sha1 -binary | "C:\cygwin64\bin\openssl.exe" base64


0 commentaires

0
votes

Après des heures d'essais, j'ai enfin trouvé une solution.

  1. Supprimez toute application sur le site Web des développeurs Facebook
  2. Supprimez le fichier debug.keystore sous C:\Users\\.android
  3. Générez une nouvelle clé (en exécutant à nouveau votre application)
  4. Créez une nouvelle application sur Facebook Developers et ajoutez la nouvelle clé de hachage Réexécutez votre application

Succès!


0 commentaires

16
votes
  1. Accédez à vos fichiers apk de sortie (généralement \ build \ app \ sorties \ flutter-apk ).

  2. Utilisez keytools pour obtenir la valeur SHA1 (exécutée dans terminal / git bash):

    keytool -printcert -jarfile app-debug.apk

  3. Convertissez la valeur HEX en base64 pour obtenir la valeur qui se termine par =. (par exemple, utilisez ce site . Soyez conscient d'avoir à Type d'entrée a sélectionné Hex . Et supprimez tout : entre les groupes de clés SHA1 -> AB: CD: EF = faux, mais ABCDEF = correct)

  4. Mettez à jour cette valeur en hachages de clés sous votre plate-forme Android.


1 commentaires

cela m'aide à résoudre le problème de connexion de l'application Facebook Flutter.



0
votes

Voici comment j'ai généré le keyhash facebook pour la version Android

  1. Ouvrir un projet Android dans Android Studio
  2. Ouvrez MainActivity qui devrait s'étendre à FlutterActivity
  3. Copiez ce code et collez-le dans MainActivity

importer android.content.Context

import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Bundle
import android.util.Base64
import android.util.Log
import io.flutter.embedding.android.FlutterActivity
import java.security.MessageDigest
import java.security.NoSuchAlgorithmException


class MainActivity: FlutterActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        printHashKey(this@MainActivity)
    }
    fun printHashKey(pContext: Context) {
        try {
            val info: PackageInfo = pContext.getPackageManager().getPackageInfo(pContext.getPackageName(), PackageManager.GET_SIGNATURES)
            for (signature in info.signatures) {
                val md = MessageDigest.getInstance("SHA")
                md.update(signature.toByteArray())
                val hashKey = String(Base64.encode(md.digest(), 0))
                Log.i("MainActivity", "printHashKey() Hash Key: $hashKey")
            }
        } catch (e: NoSuchAlgorithmException) {
            Log.e("MainActivity", "printHashKey()", e)
        } catch (e: Exception) {
            Log.e("MainActivity", "printHashKey()", e)
        }
    }
}


0 commentaires