SERVER_ERROR: [код] 1675030 [сообщение]: Ошибка при выполнении запроса
Я использую Facebook для входа в Android.
Код:
callbackManager = CallbackManager.Factory.create();
LoginButton loginButton = (LoginButton) this.findViewById(R.id.login_button);
loginButton.setReadPermissions("email", "public_profile");
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
Log.println(Log.ASSERT, "FB", "inicio session ");
}
@Override
public void onCancel() {
Log.println(Log.ASSERT, "FB", "OP NO completada");
// App code
}
@Override
public void onError(FacebookException exception) {
Log.println(Log.ASSERT, "FB", " Errro de sesion ");
exception.printStackTrace();
// App code
}
});
но всегда получаю следующую ошибку:
SERVER_ERROR: [код] 1675030 [сообщение]: Ошибка при выполнении запроса. [extra]: Ошибки при выполнении операции "ProxyAuthAppLoginQuery": в Query.proxy_auth_app_login: не удалось разрешить поле. W/System.err:
at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:190) W/System.err: at com.facebook.login.LoginManager $ 1.onActivityResult(LoginManager.java:159) W/System.err: at com. facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:82) W/System.err: at com.procibernetica.moca.MainActivity.onActivityResult(MainActivity.java:130) W/System.err: at android.app.Activity. dispatchActivityResult (Activity.java:5423) W/System.err: at android.app.ActivityThread.deliverResults(ActivityThread.java:3401) W/System.err: at android.app.ActivityThread.handleSendResult(ActivityThread.java:3448) W/System.err: at android.app.ActivityThread.access $ 1300 (ActivityThread.java:138) W/System.err: at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1284) W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) W/System.err:
на android.os.Looper.loop(Looper.java:149) W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5061) W/System.err: at java.lang.reflect.Method.invokeNative (собственный метод) W/System.err: at java.lang.reflect.Method.invoke(Method.java:515) W/System.err: at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run( ZygoteInit.java:787) W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603) W/System.err: at dalvik.system.NativeStart.main (собственный метод)
Я добавил следующие разрешения.
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Ответы
Ответ 1
Я нахожу решение, оно добавляется, когда вы не оцениваете пользователей в своем приложении.
Введите в панель приложения
Выберите Rol
![введите описание изображения здесь]()
И добавьте тестовых пользователей, когда вы пытаетесь войти в систему с помощью тестовых пользователей, приложение выполняется без сбоев
![введите описание изображения здесь]()
Ответ 2
Документация на фейсбуке неверна. Мне пришлось добавить все 3 разрешения по умолчанию, чтобы они работали.
loginButton.setReadPermissions("email", "public_profile", "user_friends");
Ответ 3
@Даниальный ответ правильный, но я хочу добавить еще немного. Эта ошибка возникает только тогда, когда приложение находится в стадии разработки. Следуйте этому ссылке и выберите свое приложение. Тогда вы можете сделать две вещи здесь. На вкладке Роли вы можете разрешить вход только своим друзьям или выбрать Обзор приложений и сделать свой app public
, после чего любой сможет войти в систему.
Ответ 4
Я получал подобную проблему, потому что пользовательский интерфейс Firebase указывал android:value
. Вот как я это решил:
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme.Base">
<meta-data
android:name="com.facebook.sdk.ApplicationId"
tools:replace="android:value"
android:value="@string/facebook_app_id" />
<acitivity
...
</activity>
...
Ответ 5
Все приведенные выше ответы не помогли мне, что было, когда вы используете эту команду
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
чтобы получить хэши-ключи, которые вы вставляете в конфигурацию facebook.
он попросит вас ввести пароль, сначала я не установил его, поэтому проблема возникла, когда я ввел android
в качестве пароля. это сработало !
Ответ 6
Режим реального разработчика Пожалуйста, проверьте статус режима разработчика. Это должно быть "Live". Во-первых, вам нужно добавить URL-адрес конфиденциальности для собственного проекта Facebook, который вы хотите проверить, войдите в Facebook или STH.... Затем включите режим разработчика (Включить)
Ответ 7
В моем случае проблема была неправильной, созданной Key Hash, которая должна быть отправлена на страницу приложения facebook. Решение найдено в этой статье https://developers.facebook.com/docs/facebook-login/android/advanced
Ручная проверка ключевого хеша - вы можете распечатать хеш-ключ, отправленный на Facebook, и использовать это значение в панели приложений. Внесите это изменение в onCreate() в свой основной вид деятельности:
try
{
PackageInfo info = getPackageManager().getPackageInfo(
"com.facebook.samples.loginhowto",
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) {
}
Ответ 8
Эта ошибка также возвращается в других ситуациях - даже когда ваше приложение является общедоступным или вы указаны в качестве тестера.
Дважды проверьте, что ваш
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
разрешает правильный идентификатор приложения Facebook, особенно если вы динамически указываете его с помощью gradle build, а не жестко кодируете его в strings.xml.
Ответ 9
В дополнение к другим ответам также проверьте, проверено ли электронное письмо учетной записи, используемой для входа в систему.
Ответ 10
В моем случае сгенерированный хеш-ключ был неправильным, потому что я использовал неправильный OpenSSL. Я использовал openssl-0.9.8k_X64.zip вместо openssl-0.9.8e_X64.zip, и это породило неправильный хеш-ключ, который вызвал эту проблему, надеюсь, что это поможет кому-то, что я потерял, как 8 часов, пытаясь понять это.
Ответ 11
Добавьте строковый ресурс "facebook_application_id" в ваш файл strings.xml
замените APP_ID вашим идентификатором приложения facebook
<string name="facebook_application_id" translatable="false">APP_ID</string>
Ответ 12
Журнал проблемы: SERVER_ERROR: [код] 1675030 [сообщение]: ошибка при выполнении запроса
И точное решение для этой конкретной проблемы (ошибка при выполнении запроса)
@aloha отвечает обновлением запроса на доступ.
loginButton.setReadPermissions("электронная почта", "public_profile", "user_friends");
- Найти, где вы Facebook кнопку логина была вызвана.
- Затем установите ReadPermission для кнопки как "электронная почта", "public_profile", "user_friends"
Ссылка на изображение
![enter image description here]()
Журнал проблемы: приложение не настроено. Это приложение все еще находится в режиме разработки. и у вас нет доступа к нему. зарегистрировать тестового пользователя или попросить разрешения у администратора приложения
- Приложение не в живом режиме
- Вы не указаны в качестве администратора или тестера в
https://developers.facebook.com/app/yourapp - Ваше приложение Hashkey не установлено. если приложение Facebook не может быть в режиме реального времени, вам нужен хеш-ключ для его проверки. потому что приложение еще не Live. Facebook не разрешает доступ.
КАК ИЗМЕНИТЬ РЕЖИМ ЖИЗНИ
1. перейти по адресу: https://developers.facebook.com
2. выберите ваше приложение в списке " Мои приложения "
3. переведите переключатель с OFF на ON
![enter image description here]()
КАК ДОБАВИТЬ В ТЕСТ ИЛИ АДМИН
1. перейти по адресу: https://developers.facebook.com
2. выберите ваше приложение в списке " Мои приложения "
3. Перейдите: Роли> Роли> Нажмите Добавить, например, администратор
4. Найдите новую учетную запись администратора/администратора в Facebook.
5. администратор должен ввести пароль facebook для подтверждения. Затем отправить
новый администратор должен перейти на страницу developer.facebook и принять запрос
6. перейти по адресу: https://developers.facebook.com
7. Профиль> Запросы> Подтвердить
8. Поздравляем, вы назначены новым администратором
КАК ПОЛУЧИТЬ И УСТАНОВИТЬ HASHKEY ДЛЯ РАЗРАБОТКИ
как см. документацию для входа в Facebook
https://developers.facebook.com/docs/android/getting-started/#create_hash
Самым предпочтительным решением для меня является код (Устранение проблем с примерами приложений)
он распечатает ключ хеша. вы можете обновить его на
https://developers.facebook.com/apps/yourFacebookappID/settings/basic/
на Android> раздел Хеши ключей
пошаговый процесс о том, как получить hashKey.
-
Сначала добавьте код в любой метод oncreate
![enter image description here]()
-
Запустите приложение и найдите KeyHash в Logcat.
![enter image description here]()
пошаговый процесс о том, как обновить на Facebook разработчика.
-
Откройте страницу разработчика Facebook. Вам необходим доступ, чтобы обновить страницу разработчика Facebook: https://developers.facebook.com
-
Следуйте за шагом как следуйте.
![enter image description here]()
Ответ 13
Я только добавил эту строку, и она работала для меня.
facebookLogin.setReadPermissions("email", "public_profile", "user_friends");