abhishek
abhishek

Reputation: 1434

Generating hash key for app using facebook sdk

I am using facebook sdk for login into my application. The application runs fine on HTC devices. The application also works fine on Samsung devices if there is no facebook app pre installed.

But if there is already facebook app on mobile and then the user installs my app, the user is never logged in. From what I know, I think this might be a problem of single sign on, and I think this is somewhat related with generating proper application hash key, and using the hash key in facebook application which I used to log into the mobile app.

Please guide me how to create the hash key. I am running ubuntu 10.4.

When I run this command in terminal :-

keytool -exportcert -alias <your keystore alias name>.keystore -keystore ~/.android/<your keystore name>.keystore | openssl sha1 -binary | openssl base64

I am never prompted for password, though I am given the hash key.

Upvotes: 32

Views: 49991

Answers (6)

rishi
rishi

Reputation: 31

Just give the command as:

keytool -exportcert -alias androiddebugkey -keystore debug.keystore

and give the keystroke password or android or enter

Here you have to go to the directory structure until ".android" then run this commnad.In general the path is C:\Users\User-name\.android>.

Upvotes: 3

Rishabh Chandel
Rishabh Chandel

Reputation: 745

If it's not prompting you for password, then first open your terminal and type :

sudo apt install openjdk-8-jre-headless

And then follow the regular way, just type:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

For password put: android You are all done.

This answer is for debug purpose only, for release purpose use your .jks file to generate hash key.

Upvotes: 4

vikash sain
vikash sain

Reputation: 1

C:\openssl\bin>keytool -exportcert -alias aliasName -keystore "C:\Users\s\.android\debu
g.keystore" | "C:\openssl\bin\openssl" sha1 -binary | "C:\openssl\bin\openssl" b
ase64
Enter keystore password:  android
GEYtOJobR4NzuxX4iOl/yR6sla4=

Upvotes: 0

Kislingk
Kislingk

Reputation: 1457

Check three parts in your environment.

  1. where is "debug.keystore"?

    find / -name "debug.keystore"

    if you can't find it, check you eclipse or ADT.

  2. what is alias name?

    keytool -list -v -keystore "PATH_TO_DEBUG_KEYSTORE"

  3. Check if installed openssl

    openssl

If everything is ready, it should prompt for password

Upvotes: 2

ACengiz
ACengiz

Reputation: 1315

You can use this code block to generate hash key. Put this code block in your onCreate() method.

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "Your package name", 
                PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());
            Log.d("Your Tag", Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
    } catch (NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }

Upvotes: 46

Lavanya
Lavanya

Reputation: 3913

Try this:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64 

I hope you will get it. I just checked it and I got the prompt for password.

Upvotes: 62

Related Questions