Приложение неправильно настроено для входа в Facebook - не возвращает logcat, после установки ENABLE_LOG в true в util.java

1

Извините за то, что задал тот же вопрос, но я прочитал все опубликованные ранее темы и попробовал все, что было предложено, но я все еще не увенчался успехом.

Я получаю то же самое:

Приложение неверно настроено для входа в Facebook.

Изображение 174551

Проблема выглядит так же, как здесь, но я не мог заставить Logcat напечатано как ошибка красного цвета даже после установки ENABLE_LOG в true в util.java.

Я проверил свой app_id и скопировал хеш-ключ в developer.facebook, и все выглядит правильно. Но я не знаю, где я ошибаюсь, а также что я прав, когда я использую приложение без собственного приложения Facebook.

Но я хочу войти с помощью собственного Facebook.

Теги:
facebook

1 ответ

3
Лучший ответ

Предполагая, что вы используете последнюю версию 3.0 SDK, попробуйте выполнить следующие два варианта:

Вариант 1: (Windows)

%KEYTOOLPATH%\keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | %OPENSSLPATH%\openssl sha1 -binary | %OPENSSLPATH%\openssl base64

Пример:

C:\Program Files (x86)\Java\jdk1.7.0_09\bin\keytool" -exportcert -alias androiddebugkey -keystore "C:\Home\.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary | "C:\OpenSSL\bin\openssl" base64 

Использовать пароль: android

Вариант 2: (Хэш хеширования печати отправлен в FB)

(Вариант Facebook SDK для Android - пример приложения не будет работать)

Добавьте этот код в свою деятельность:

    try {
        PackageInfo info = getPackageManager().getPackageInfo("your package name, e.g. com.yourcompany.yourapp]", 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) {

    }

Пример: В HelloFacebookSampleActivity сделайте следующую временную модификацию метода onCreate()

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    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) {

    }

    ...
}

Запустите свой образец, и вы должны получить вывод logcat в теге KeyHash, похожий на:

12-20 10:47:37.747: D/KeyHash:(936): 478uEnKQV+fMQT8Dy4AKvHkYibo=

Используйте это значение в настройках панели Facebook App Dashboard для своего приложения.

  • 0
    Спасибо за ответ, и извините, что я пропустил, чтобы дать разрешение "user_action", теперь решено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню