Pages

Monday, April 1, 2013

How to get Hash Key for integarte facebook SDK in android application


Hello Everyone today I am posting to get Hash Key for Facebook integration.




There is a two way to get Hash Key.

1. Using CMD

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\User\.android\debug.keystore" | openssl sha1 -binary | openssl base64

and then press Enter. Insert password: android

 - You will get your hash key for debug.keystore.

 - When you export a signed APK and you create keystore for application, just replace in cmd debugkeystore alias with your alias for app, keystore path with path to your new created keystore for app and insert password for your app.keystore and you will get a new hash key for your signed app.

2. Just Copy below code in Activity class:

Open up the Your Activity class and make the following temporary change to the onCreate() method:
This is easy to use other then ssl and so.

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import android.app.Activity;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.Signature;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;

public class MainActivity extends Activity
{
 @Override
 public void onCreate(Bundle savedInstanceState) 
 {
  super.onCreate(savedInstanceState);

  // Add code to print out the key hash
  try {
   
   PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
   
   for (Signature signature : info.signatures) 
   {
    MessageDigest md = MessageDigest.getInstance("SHA");
    md.update(signature.toByteArray());
    Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
   }
   
  } catch (NameNotFoundException e) {
   Log.e("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }
 }
}

If you Run app without signed APK then You will get your hash key for debug.keystore.
When you export a signed APK, just signed APK with your keystore and Run the Application.

You can delete the code after knowing the key ;)
enjoy !

Note :- If you getting below error in Facebook integration.
A non-native Login Dialog is displayed that includes an error message at the top:

''..App is Misconfigured for facebook login...''.

Besides double checking your key hash generation steps.