Android интеграция facebook недействительным хэш-ключ

? Pragna @ | Original: StackOverFlow
---

Привет всем в одном из моего приложения я необходимо получить данные ФБ ... я делаю это ..

Я создал приложение ID, что войти успешно, но после Выход я войти тогда он дает мне !  http://i.stack.imgur.com/58q3v.png

Что не так я делаю ? Пожалуйста, предложите Я использую Facebook SDK ... я установил Facebook в моем телефоне ... это работает хорошо в эмуляторе, что не установлен встроенный приложение Facebook

this is my code

 if (FB_APP_ID == null) {
            Builder alertBuilder = new Builder(this);
            alertBuilder.setTitle("Warning");
            alertBuilder.setMessage("A Facebook Applicaton ID must be " +
                    "specified before running this example: see App.java");
            alertBuilder.create().show();
        }

        // Initialize the dispatcher
        Dispatcher dispatcher = new Dispatcher(this);
        dispatcher.addHandler("login", LoginHandler.class);
        dispatcher.addHandler("stream", StreamHandler.class);
        dispatcher.addHandler("logout", LogoutHandler.class);

        // If a session already exists, render the stream page
        // immediately. Otherwise, render the login page.
        Session session = Session.restore(this);
        if (session != null) {
            dispatcher.runHandler("stream");
        } else {
            dispatcher.runHandler("login");
        }
---

Top 5 ответ

1Joao Ventura @

По https://developers.facebook.com/docs/android/login-with-facebook/v2.0, необходимо предоставить ключ хэш-значение. Для того, чтобы получить его, вам понадобитсяhttps://developers.facebook.com/docs/android/getting-started, используемый для подписи приложения.

keytool 
    -exportcert 
    -alias YourKeyAlias 
    -storepass YourStoreKeyPassword 
    -keystore PathToYourKeyStoreFile | openssl sha1 -binary | openssl base64
2Mahendran @

Ключ генерировать хэш не так. Вы можете получить хэш-ключ, используя два этапа. Одним из них является через командную строку. Еще один через кодирование . Hash ключ через командную строку работать только на первый раз. Я не знаю, почему. Кроме того, я получил ту же проблему. Так я пробовал через программно .

Следуйте этим шагам :

Вставьте следующий код в oncreate() .

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.example.packagename", 
                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) {

    }

Изменить " com.example.packagename " с именем вашего пакета в вышеупомянутом кодирования в обязательном порядке (Вы можете найти ваше имя пакета в Android Manifest файла).

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

Android интеграция facebook недействительным хэш-ключ

После того, как вы закончили предыдущий шаг . Перезапустите приложение снова теперь вы можете войти в Facebook. Для более подробной информации об основных проверки хэшаhttp://stackoverflow.com/a/12306418/3049065

Если вы добавляете неправильную информацию в настройках страницы означает это даст какую-либо ошибку . так что используйте правильную информацию там. А также, если общественность ( кроме вас ) необходимо использовать приложение означает, что вы должны включить разрешение (change "yes" in the "Status & Review" next to setting) .

3pavel_coder @

мимо падающей кода в OnCreate метод

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.example.packagename", 
            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) {
  e.printStackTrace();

} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
}

просто изменить пакет name.Then вы идете в вашем журнале кошки и выберите Поиск Debug вот тогда вас найдет хэш-ключ, то вы coppy хэш-ключ, а затем перейти к developer.facebook.app_id сайте, то редактировать хэш-ключ затем прессуют сохранены. Запустите андроид проект снова я думаю, что это будет решена.