2016-10-31 3 views
0

У меня нет проблем с входом в facebook с помощью ключа разработки и запуска debug apk. Но когда я произвожу релиз APK и запустить на устройстве, он показываетFacebook hash key

«Недопустимый ключ имеет, ключ хэш XXXXXXXXXX не соответствуют запомненным ключевым хэш»

Я на самом деле добавил ключ разблокировки на консоли, и что ключ не соответствует ключу выше, даже я ввел ключ показано выше, он не работает, я использовал следующую команду для генерации ключа разблокировки:

keytool -exportcert -alias androiddebugkey -keystore C:\Users\ywj7931\.android\debug.keystore | C:\Users\ywj7931\Downloads\openssl-0.9.8e_X64\bin\openssl sha1 -binary | C:\Users\ywj7931\Downloads\openssl-0.9.8e_X64\bin\openssl base64 

это потому, что мое приложение не публикуются на Google играть или не просматривать в Facebook?

ответ

0

Вам нужно получить свой хеш-код производства и добавить его в свои Facebook-хэш-ключи в консоли Facebook.

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

После того, как вы получите ключ, вы можете добавить его на свою страницу Facebook.

или вы можете получить его, как показано ниже, в prod apk, который вы подписали с вашим магазином Key Key.

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
     "com.app.package", 
     PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     Log.d("KeyHash", "KeyHash:"+ Base64.encodeToString(md.digest(), 
     Base64.DEFAULT)); 
     Toast.makeText(getApplicationContext(), Base64.encodeToString(md.digest(), 
       Base64.DEFAULT), Toast.LENGTH_LONG).show(); 
     } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 

После того, как вы получите, вы должны добавить его к своим хэш-ключам на странице приложения в консоли Facebook.

+0

Я думаю, что первая команда точно такая же, как моя, но все же не работает – ywj7931

+0

в вашем продукте apk, с которым вы подписали ключ, вы можете попробовать второе решение и занести свой ключ в свой аккаунт. то вы можете добавить его в консоль Facebook и удалить этот журнал и операцию из своего apk. – savepopulation

+0

Ну, это все еще не работает, это потому, что мое приложение не опубликовано в Google Play? Для первого решения я использую ключ, который я подписал с моим apk, это правильно? – ywj7931

1

Проблема в том, что вы являетесь ключевым хешем, который не совпадает с вашим сохраненным ключевым хешем на Facebook. вы можете увидеть ключ хэша журнала с помощью этого кода:

Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Add code to print out the key hash 
    try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       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) { 

    } catch (NoSuchAlgorithmException e) { 

    } 

А затем скопируйте и вставьте этот релиз Key Hash в настройках Facebook App ID в Android.

Update , если вы хотите, чтобы добавить его вручную, вы можете добавить ключ хэша от ошибок в приложении, а затем ввести его вручную Android настройку вашего приложения Facebook идентификаторов. эта работа для меня, но боль, чтобы напечатать правильный, а также не забудьте добавить ~ или любой символ, отображаемый с помощью недействительного хеша.

+0

Это должен быть ключ разработки, и я скопировал и вставил его на консоль, и он все еще не работает. – ywj7931

+0

@ ywj7931 вы также можете ввести его вручную, но больно, когда наберите его. –

Смежные вопросы