SERVER_ERROR: [code] 1675030 [message]: Error performing query
SERVER_ERROR: [code] 1675030 [message]: Error performing query
我在 android 中使用 Facebook 登录。
代码:
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: [code] 1675030 [message]: Error performing query.
[extra]: Errors while executing operation "ProxyAuthAppLoginQuery": At
Query.proxy_auth_app_login: Failed to resolve field. W/System.err:
at
com.facebook.login.LoginManager.onActivityResult(LoginManager.java:190)
W/System.err: at
com.facebook.login.LoginManager.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.access00(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:
at 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(Native
Method) 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(Native Method)
我添加了以下权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
我找到了解决方案,当您的应用程序中没有评估用户时会发生这种情况。
进入你的面板App
Select 滚
并添加测试用户,当您尝试使用测试用户登录时,应用程序执行无误
@Danial 回答正确,但我想补充一些。只有当您的应用程序正在开发中时才会出现此类错误。按照这个 link 和 select 你的应用程序。然后你可以在这里做两件事。在 角色 选项卡中,您可以只允许登录您的朋友,否则 select 应用评论 然后让您的 app public
任何人都可以登录。
在其他情况下也会返回此错误 - 即使您的应用 public 或者您被列为测试人员。
仔细检查您的
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
正在解析为正确的 Facebook 应用程序 ID,特别是如果您使用 gradle 构建动态指定它,而不是在 strings.xml.
中对其进行硬编码
我遇到了类似的问题,因为 Firebase UI 指定了 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>
...
我除了其他答案外,还请检查用于登录的帐户的电子邮件是否已验证。
facebook 上的文档不正确。我必须添加所有 3 个默认权限才能使其正常工作。
loginButton.setReadPermissions("email", "public_profile", "user_friends");
在您的 strings.xml
中添加一个字符串资源 "facebook_application_id"
将 APP_ID 替换为您的 Facebook 应用程序 ID
<string name="facebook_application_id" translatable="false">APP_ID</string>
以上所有答案都对我没有帮助,当你使用这个命令时才帮到我
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
获取您在 facebook 配置中输入的密钥哈希。
它会要求你输入密码,一开始我没有设置任何密码,所以当我输入 android
作为密码时,问题就发生了。成功了!
Live developer mode
请检查开发者模式的状态。必须是 "Live"。
首先,您需要为自己的 facebook 项目添加隐私 url,您想要测试 facebook 登录或......然后启用开发者模式(打开)
在我的例子中,生成的散列键是错误的,因为我使用了错误的 OpenSSL。
我使用的是 openssl-0.9.8k_X64.zip 而不是 openssl-0.9.8e_X64.zip ,这为我生成了一个错误的散列键,导致了这个问题希望它能帮助一些我迷失了 8 小时试图解决这个问题的人.
在我的案例中,问题是生成的密钥哈希错误,需要在 facebook 应用程序页面上提交
在这篇文章中找到的解决方案 https://developers.facebook.com/docs/facebook-login/android/advanced
手动检查密钥哈希 - 您可以打印出发送到 Facebook 的密钥哈希并在应用面板中使用该值。在主 activity:
中对 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) {
}
Issue Log: SERVER_ERROR: [code] 1675030 [message]: Error performing query
和针对此特定问题的准确解决方案(执行查询时出错)
由 @aloha 回答是通过更新访问查询。
loginButton.setReadPermissions("email", "public_profile", "user_friends");
- 查找调用 Facebook 登录按钮的位置。
- 然后设置按钮的ReadPermission为"email", "public_profile", "user_friends"
图片参考
Issue Log: App Not Setup. This app is still in development mode. and you dont have access to it. register test user or ask an app admin for permission
- 该应用未处于实时模式
- 您未在
https://developers.facebook.com/app/yourapp 中列为管理员或测试人员
- 您的 App Hashkey 未设置。如果 Facebook 应用程序不能处于实时模式,您需要一个哈希键来测试它。因为该应用程序尚未上线。 Facebook 不允许访问。
如何更改为实时模式
1. 前往:https://developers.facebook.com
2. select 您的应用在“我的应用”列表
3. 将开关从 OFF 切换到 ON
如何添加为测试或管理员
1. 前往:https://developers.facebook.com
2. select 您的应用在“我的应用”列表
3. 转到:角色 > 角色 > 按添加,例如管理员
4. 搜索您的新 admin/tester Facebook 帐户。
5.管理员必须输入facebook密码才能confirm.then提交
新管理员必须转到 developer.facebook 页面并接受请求
6. 转到:https://developers.facebook.com
7. 配置文件 > 请求 > 确认
8. 恭喜您已被任命为新管理员
如何为开发获取和设置 HASKEY
参考 Facebook 登录文档
https://developers.facebook.com/docs/android/getting-started/#create_hash
我最喜欢的解决方案是通过代码(Troubleshooting Sample Apps)
它将打印出哈希键。你可以更新它
https://developers.facebook.com/apps/yourFacebookappID/settings/basic/
在 Android > 密钥哈希 部分
关于如何获取 hashKey 的分步过程。
首先将代码添加到任何oncreate方法
运行 应用程序并在 Logcat
处搜索 KeyHash
关于如何在 Facebook 开发者上更新的分步过程。
打开 Facebook 开发者页面。您需要访问权限才能更新 Facebook 开发者页面:https://developers.facebook.com
按照以下步骤操作。
我刚刚添加了这一行,它对我有用。
facebookLogin.setReadPermissions("email", "public_profile", "user_friends");
我不知道这是否有帮助,但根据个人经验,当您生成开发密钥时,您需要输入密码 "android" 并确保在添加时在代码后添加 =它在开发人员 facebook 域的领域
我刚刚通过 https://developers.facebook.com/apps/ 修复了它
然后 select 我的应用
switch to live mode
“从应用 ID 左上角开始”
试试这个,在 android 构建文件夹
中找到你的 app-debug.apk
keytool -printcert -jarfile app-debug.apk | openssl sha1 -binary | openssl base64
将其粘贴到 facebook 密钥哈希中。
您需要查看在 phone facebook 应用程序中连接的用户是否是在应用程序页面上的 facebook 开发人员中具有测试或开发人员权限的用户。
对于 Flutter,这是修复
final LoginResult result = await FacebookAuth.instance.login(
permissions: [
'public_profile',
'email',
'pages_show_list',
'pages_messaging',
'pages_manage_metadata'
],
);
我在 android 中使用 Facebook 登录。
代码:
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: [code] 1675030 [message]: Error performing query. [extra]: Errors while executing operation "ProxyAuthAppLoginQuery": At Query.proxy_auth_app_login: Failed to resolve field. W/System.err:
at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:190) W/System.err: at com.facebook.login.LoginManager.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.access00(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:
at 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(Native Method) 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(Native Method)
我添加了以下权限。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
我找到了解决方案,当您的应用程序中没有评估用户时会发生这种情况。
进入你的面板App Select 滚
并添加测试用户,当您尝试使用测试用户登录时,应用程序执行无误
@Danial 回答正确,但我想补充一些。只有当您的应用程序正在开发中时才会出现此类错误。按照这个 link 和 select 你的应用程序。然后你可以在这里做两件事。在 角色 选项卡中,您可以只允许登录您的朋友,否则 select 应用评论 然后让您的 app public
任何人都可以登录。
在其他情况下也会返回此错误 - 即使您的应用 public 或者您被列为测试人员。
仔细检查您的
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
正在解析为正确的 Facebook 应用程序 ID,特别是如果您使用 gradle 构建动态指定它,而不是在 strings.xml.
中对其进行硬编码我遇到了类似的问题,因为 Firebase UI 指定了 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>
...
我除了其他答案外,还请检查用于登录的帐户的电子邮件是否已验证。
facebook 上的文档不正确。我必须添加所有 3 个默认权限才能使其正常工作。
loginButton.setReadPermissions("email", "public_profile", "user_friends");
在您的 strings.xml
中添加一个字符串资源 "facebook_application_id"将 APP_ID 替换为您的 Facebook 应用程序 ID
<string name="facebook_application_id" translatable="false">APP_ID</string>
以上所有答案都对我没有帮助,当你使用这个命令时才帮到我
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
获取您在 facebook 配置中输入的密钥哈希。
它会要求你输入密码,一开始我没有设置任何密码,所以当我输入 android
作为密码时,问题就发生了。成功了!
Live developer mode 请检查开发者模式的状态。必须是 "Live"。 首先,您需要为自己的 facebook 项目添加隐私 url,您想要测试 facebook 登录或......然后启用开发者模式(打开)
在我的例子中,生成的散列键是错误的,因为我使用了错误的 OpenSSL。 我使用的是 openssl-0.9.8k_X64.zip 而不是 openssl-0.9.8e_X64.zip ,这为我生成了一个错误的散列键,导致了这个问题希望它能帮助一些我迷失了 8 小时试图解决这个问题的人.
在我的案例中,问题是生成的密钥哈希错误,需要在 facebook 应用程序页面上提交 在这篇文章中找到的解决方案 https://developers.facebook.com/docs/facebook-login/android/advanced
手动检查密钥哈希 - 您可以打印出发送到 Facebook 的密钥哈希并在应用面板中使用该值。在主 activity:
中对 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) {
}
Issue Log: SERVER_ERROR: [code] 1675030 [message]: Error performing query
和针对此特定问题的准确解决方案(执行查询时出错)
由 @aloha 回答是通过更新访问查询。
loginButton.setReadPermissions("email", "public_profile", "user_friends");
- 查找调用 Facebook 登录按钮的位置。
- 然后设置按钮的ReadPermission为"email", "public_profile", "user_friends"
图片参考
Issue Log: App Not Setup. This app is still in development mode. and you dont have access to it. register test user or ask an app admin for permission
- 该应用未处于实时模式
- 您未在
https://developers.facebook.com/app/yourapp 中列为管理员或测试人员
- 您的 App Hashkey 未设置。如果 Facebook 应用程序不能处于实时模式,您需要一个哈希键来测试它。因为该应用程序尚未上线。 Facebook 不允许访问。
如何更改为实时模式
1. 前往:https://developers.facebook.com
2. select 您的应用在“我的应用”列表
3. 将开关从 OFF 切换到 ON
如何添加为测试或管理员
1. 前往:https://developers.facebook.com
2. select 您的应用在“我的应用”列表
3. 转到:角色 > 角色 > 按添加,例如管理员
新管理员必须转到 developer.facebook 页面并接受请求
6. 转到:https://developers.facebook.com
7. 配置文件 > 请求 > 确认
如何为开发获取和设置 HASKEY
参考 Facebook 登录文档
https://developers.facebook.com/docs/android/getting-started/#create_hash
我最喜欢的解决方案是通过代码(Troubleshooting Sample Apps)
它将打印出哈希键。你可以更新它
https://developers.facebook.com/apps/yourFacebookappID/settings/basic/
在 Android > 密钥哈希 部分
关于如何获取 hashKey 的分步过程。
首先将代码添加到任何oncreate方法
运行 应用程序并在 Logcat
处搜索 KeyHash
关于如何在 Facebook 开发者上更新的分步过程。
打开 Facebook 开发者页面。您需要访问权限才能更新 Facebook 开发者页面:https://developers.facebook.com
按照以下步骤操作。
我刚刚添加了这一行,它对我有用。
facebookLogin.setReadPermissions("email", "public_profile", "user_friends");
我不知道这是否有帮助,但根据个人经验,当您生成开发密钥时,您需要输入密码 "android" 并确保在添加时在代码后添加 =它在开发人员 facebook 域的领域
我刚刚通过 https://developers.facebook.com/apps/ 修复了它 然后 select 我的应用
switch to live mode
“从应用 ID 左上角开始”
试试这个,在 android 构建文件夹
中找到你的 app-debug.apkkeytool -printcert -jarfile app-debug.apk | openssl sha1 -binary | openssl base64
将其粘贴到 facebook 密钥哈希中。
您需要查看在 phone facebook 应用程序中连接的用户是否是在应用程序页面上的 facebook 开发人员中具有测试或开发人员权限的用户。
对于 Flutter,这是修复
final LoginResult result = await FacebookAuth.instance.login(
permissions: [
'public_profile',
'email',
'pages_show_list',
'pages_messaging',
'pages_manage_metadata'
],
);