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.
- Delete any app on the website of Facebook (developers.facebook.com)
- Delete the file debug.keystore under
C:\Users\yourUserName\.android
- Generate a new key (by running your app again)
- Create a new app on developers.facebook.com and add the new hash key
- Re-run your app
- 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.
Facebook login, problem with hash key - Flutter , How to generate Facebook Hashkey in flutter?
Go to your output apk files (Usually
<project_root>\build\app\outputs\flutter-apk
).Use keytools to get the SHA1 value (run in terminal / git bash):
keytool -printcert -jarfile app-debug.apk
Convert the HEX value to base64 to get value that ends with =. (i.e. Use this site. Be aware to have at
Input type
selectedHex
. And delete all:
between SHA1 key groups ->AB:CD:EF
= wrong, butABCDEF
= correct)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
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
How to Make an Android Spinner With Initial Text "Select One"
How to Start New Activity on Button Click
Activity Has Leaked Window That Was Originally Added
When to Call Activity Context or Application Context
Jdbc VS Web Service For Android
How to Change the Status Bar Color in Android
Retrieve a Fragment from a Viewpager
Building and Running App Via Gradle and Android Studio Is Slower Than Via Eclipse
Android Left to Right Slide Animation
Removing an Activity from the History Stack
Imageview in Circular Through Xml
Sending an Intent to Browser to Open Specific Url
How to Find Out If the Gps of an Android Device Is Enabled
How to Transfer Some Data to Another Fragment
How to Convert a Base64 String into a Bitmap Image to Show It in a Imageview