Я получаю эту ошибку. Когда я пытаюсь войти с помощью facebook в свое приложение. При первой аутентификации все работает правильно. После того как я удалил свое приложение и теперь пытаюсь войти в систему с помощью Facebook, я получаю эту ошибку.
Другая проблема : После аутентификации на устройстве 1 и попытки войти в систему с помощью Facebook на устройстве 2 я получаю ту же ошибку.
Решение, которое я нашел : когда я удаляю аутентификацию приложения из настроек приложения Facebook, это работает в вышеуказанном сценарии, но это не очень хорошее решение, как мы можем сказать пользователям, чтобы они сделали это действие?
btnFbLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(accessToken != null) {
boolean expires = accessToken.isExpired();
if(!expires) {
performFbLoginOrSignUp(accessToken);
}
} else {
LoginButton loginButton = (LoginButton) findViewById(R.id.login_button);
callbackManager = CallbackManager.Factory.create();
if (loginButton != null) {
loginButton.setReadPermissions("public_profile", "email", "user_friends");
if (CommonUtil.isConnectingToInternet(LoginActivity.this)) {
loginButton.performClick();
loginButton.setPressed(true);
loginButton.invalidate();
loginButton.registerCallback(callbackManager, mCallBack);
loginButton.setPressed(false);
loginButton.invalidate();
}
}
}
}
});
В примере Facebook также возникла проблема : GitHub ссылка на пример Facebook
Шаги для воспроизведения :
Запустите приложение Войдите в систему с помощью Facebook Аутентифицируйте профиль FB.
Удалите приложение и установите его снова.
Теперь попробуйте войти в систему через Facebook.
Возникнет вышеуказанная ошибка. потому что мы уже аутентифицировались, поэтому нам нужно получить доступ к профилю fb. но здесь мы столкнулись с проблемой.
Страница уже авторизованного пользователя не отображается.
Я использую нативное приложение FB на устройстве Xiaomi Redmi Note 3.
Ошибка возникает из-за недопустимый хэш-ключа.
Мы можем создать хэш-ключ, используя следующую команду и обновить один и тот же здесь в разделе Настройки-и gt; Основные -> HashKeys Андроид
keytool -exportcert -alias ADD_RELEASE_KEY_ALIASE_HERE -keystore ADD_UR_KEYSTORE_PATH_HERE | openssl sha1 -binary | openssl base64
Вы можете найти разблокировки ключ псевдоним ваш keystore с помощью ниже команду, если необходимо:
keytool -list -keystore ADD_UR_KEYSTORE_PATH_HERE
У меня также возникают проблемы, как с помощью вышеуказанных HashKey логин работает нормально, если я установить APK непосредственно на устройство, но когда я загрузить APK в Play Маркет и установите приложение из магазина, то он показывает же ошибка входа ошибка. Исправление это заключается в следующем:
Я тоже столкнулся с этой проблемой. Обновите свой хэш-ключ на Facebook.
Для меня, именно эта ошибка была из-за недопустимых строк разрешения. Вышло на iOS и Android.
Эта проблема возникает потому, что вы'уже аутентифицировали приложение через Facebook, и ваш код может содержать Authenticate every time Facebook (Find and Remove that).
Выполните следующие действия:
Перейдите в настройки Facebook.
Удалите свое приложение.
Убедитесь, что вы'добавили Facebook Login на странице разработчика Facebook и включили Client OAuth Login.
Перейдите к своему коду и переопределите метод обратного вызова:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mFacebookCallbackManager.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Intent secondActivityIntent = new Intent(this, RedirectActivity.class);
startActivity(secondActivityIntent);
}
}
В методе Oncreate вызовите AccessToken:
accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(
AccessToken oldAccessToken,
AccessToken currentAccessToken) {
// Установите токен доступа с помощью
// currentAccessToken, когда он загружается или устанавливается.
}
};
// Если токен доступа уже доступен, присвойте его.
accessToken = AccessToken.getCurrentAccessToken();
if (accessToken != null && !accessToken.isExpired())
{
GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
if(null != object) {
try
{
Intent i = new Intent(MainActivity.this, Feedback.class);
startActivity(i);
String email = object.getString("email");
String birthday = object.getString("birthday");
}
catch (Exception ex)
{
Toast.makeText(MainActivity.this, ex.toString(), Toast.LENGTH_SHORT).show();
}
} else {
// вызов вашего процесса аутентификации
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,birthday,link");
request.setParameters(parameters);
request.executeAsync();
}
Просто бросить это там для людей все-таки столкнулись с этой проблемой. Хэш, который я создал с помощью ключей было как-то неправильно. Я исправил это следующим образом:
Если вы уже загрузили приложение на PlayStore и включено "и подписания Приложения от Google играть" и есть решение (по крайней мере это работало для меня):
Это должно исправить проблему.
Проблема для меня действительно с хэш-ключ, он's не действует.
У меня была точно такая же проблема, и это было очень трудно диагностировать. Причина в том, что Facebook не'т проверить хэш-ключа при первом логине и кажется, что ключ правильный, но на самом деле это's не. Во-вторых, сообщение об ошибке-это просто идеократии. Третий-разрешение: попробуйте следующую ссылку, она помогла мне.
Я говорю это,
https://developers.facebook.com/docs/android/getting-started
или просто добавить ниже код в onCreate() метод, который возвращает хеш-ключ.
// 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) {
}
Добавить выше код, чтобы получить ключ,этот ключ можно хранить
https://developers.facebook.com/docs/facebook-login/android
здесь. Теперь он будет работать.
Он работал для меня, надеюсь, будет работать для вас тоже.
Или
Эта команда не может дать вам последний keyhash.
ключей -exportcert -псевдоним YOUR_RELEASE_KEY_ALIAS -хранилище YOUR_RELEASE_KEY_PATH | в OpenSSL SHA1-по бинарные | OpenSSL с помощью base64
Чтобы получить последний или активный keyhash из Android студии поиск хэша в Android студии'ы logcat или андроида монитора, в то время как приложение работает и бросая сообщение об ошибке выше. Вы получите различные keyhash, который является активным. После вставки этого искали keyhash в консоли настройки вы можете войти быть в состоянии вашего приложения.
Я столкнулся с той же проблемой.
Это была ошибка на моей стороне.
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
При вводе этой команды предложено ввести пароль хранилища ключей:. Я давал
keyPasswordвместо
storePassword и он не'т давали какие-то ошибки вместо сообщения сгенерированы другой хэш!
Удалите приложение из настроек пользователя в Facebook (учетная запись).
Удалите приложение.
Получите новый хэш, используя релизное или новое отладочное хранилище ключей. Используйте эту команду:
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
Добавьте новый хэш на приборную панель Facebook.
Я столкнулась с той же проблемой и я обнаружил, что ключ-хэш, который я создал, чтобы поставить в консоли разработчика facebook не является правильным. Я пытался генерировать хэш-ключ от другой компьютер и он попросил меня ввести пароль для конкретного хранилища которой не было в моем компьютере. Поэтому убедитесь, что вам будет предложено ввести пароль от хранилища ключей при создании хэш-ключ и вставить хэш ключа в facebook консоли разработчика.
Команду, чтобы генерировать хэш-ключ:
ключей -exportcert -здесь псевдоним-псевдоним keystore тип KEY_STORE_FILE_PATH_HERE | в OpenSSL SHA1-по бинарные | OpenSSL с помощью base64
У меня была та же проблема сегодня на моих сайтах и понял, что я был через старый default_graph_version = В3.2. Я'вэ изменил его до последней:
default_graph_version = В4.0
Теперь все снова работает. Дать ему попробовать.
Передо мной стоял тот же вопрос. У меня keyhashes вполне определенными, по-прежнему сталкивается с той же проблемой. Я не смог войти даже в первый раз.
Решение моей проблемы было:
Перейти в приложение'приборная панель с ЗДЕСЬ
На левой панели в разделе Продукты, убедитесь, что у вас есть учетная запись Facebook добавил. Если нет, то добавить ее туда.
Если все остальные настройки на месте. Она работает идеально после этого.