Key Hash For Android-Facebook App

How to create Android Facebook Key Hash?

Here is what you need to do -

Download openSSl from Code
Extract it. create a folder- OpenSSL in C:/ and copy the extracted code here.

detect debug.keystore file path. If u didn't find, then do a search in C:/ and use the Path in the command in next step.

detect your keytool.exe path and go to that dir/ in command prompt and run this command in 1 line-

$ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64

it will ask for password, put android
that's all. u will get a key-hash

Android Facebook SDK: generate release key hash

You followed the steps that facebook provides for the creation of a login application?

You need a 'Production keyhash' obtained starting your release keystore:

From comand line:

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

And add this key on facebook app page options.

More information: https://developers.facebook.com/docs/android/getting-started/

Facebook Android Generate Key Hash

Delete your debug certificate under ~/.android/debug.keystore (on Linux and Mac OS X); the directory is something like %USERHOME%/.android on Windows.

The Eclipse plugin should then generate a new certificate when you next try to build a debug package.

Let me know if that works.

Facebook key hash does not match any stored key hashes

After hours of trying I've finally found a solution.

  1. Delete any app on the website of Facebook (developers.facebook.com)
  2. Delete the file debug.keystore under C:\Users\yourUserName\.android
  3. Generate a new key (by running your app again)
  4. Create a new app on developers.facebook.com and add the new hash key
  5. Re-run your app
  6. Succes!

Facebook android app error : Invalid key hash

As I understand you've got your key hash, but still I'll put here the code for getting it in the console.

PackageInfo info;
try {
info = getPackageManager().getPackageInfo("com.your.project.package", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
//String something = new String(Base64.encodeBytes(md.digest()));
Log.e("hash key", something);
}
} catch (PackageManager.NameNotFoundException e1) {
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}

Where "com.your.project.package" is the package of your project =)

Next thing, dont delete previous key hash, they don't conflict I think. For example I have 2 keyhashes in my facebook app.

And the latest thing, and I think this is the problem. Go to the Status&Review of your app at the developers.facebook. And switch your application to public.
public access to app

Facebook login, problem with hash key - Flutter , How to generate Facebook Hashkey in flutter?

  1. Go to your output apk files (Usually <project_root>\build\app\outputs\flutter-apk).

  2. Use keytools to get the SHA1 value (run in terminal / git bash):

    keytool -printcert -jarfile app-debug.apk

  3. Convert the HEX value to base64 to get value that ends with =. (i.e. Use this site. Be aware to have at Input type selected Hex. And delete all : between SHA1 key groups -> AB:CD:EF = wrong, but ABCDEF = correct)

  4. Update that value to key hashes under your android platform.

Questions about Development and Release Key Hashes for Facebook SDK for Android

Q: What do those Key Hashes do?

  • They identify your keystore and application uniquely. it is a unique
    fingerprint for your application:

Signing Your Applications

  • Android requires that all apps be digitally signed with a certificate
    before they can be installed. Android uses this certificate to
    identify the author of an app, and the certificate does not need to
    be signed by a certificate authority. Android apps often use
    self-signed certificates. The app developer holds the certificate's
    private key.

Signing Overview

  • You can sign an app in debug or release mode. You sign your app in
    debug mode during development and in release mode when you are ready
    to distribute your app. The Android SDK generates a certificate to
    sign apps in debug mode. To sign apps in release mode, you need to
    generate your own certificate. For your further reference you can
    look at what keyhashes are at

http://developer.android.com/tools/publishing/app-signing.html

https://developers.facebook.com/docs/facebook-login/android

Q: Why is there a need to create different key hashes for both Release and Development?

As you know android uses different Keystores for both development and release, since the two keystores are different in every aspect, they both have different fingerprints and SHA-1 hashes hence they are treated entirely different.

Q: If I haven't published my app to the PlayStore yet. Can I use the Release Key instead of using the Development key?

Yes you can use the release key for APK generation purposes only however if you are in debug mode this key wont work at all.

Q: If I my app is live in PlayStore, can I keep using the Development key?

Yes you can keep using development key but you cannot use the debug key.

Q:What should I put into YOUR_RELEASE_KEY_ALIAS and YOUR_RELEASE_KEY_PATH? Can anyone provide samples please?

attached is image if you are concerned about facebook keys
Sample Image

Q:Why is that when we develop for iOS, those key hashes were not required?

That is due to platform requirement. It isn't necessary that if one platform requires one thing the other platform will also.

Single Sign On

Single sign-on is roughly an extension of (and replacement for) services like Facebook Connect, connecting you to third-party social apps and services. If you're already logged on to Facebook on your mobile phone, you'll be able to sign in to other apps using your Facebook credentials.

Here is the code to generate fb fingerprint.

public void generateFbFingerPrint() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.group3amd.gc.activity",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign = Base64
.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("KEYHASH:", sign);
Toast.makeText(getApplicationContext(), sign, Toast.LENGTH_LONG)
.show();
}
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}




}


Related Topics



Leave a reply



Submit