SERVER_ERROR:[代码] 1675030 [消息]:执行查询时出错

Posted

技术标签:

【中文标题】SERVER_ERROR:[代码] 1675030 [消息]:执行查询时出错【英文标题】:SERVER_ERROR: [code] 1675030 [message]: Error performing query 【发布时间】:2017-06-11 05:19:44 【问题描述】:

我在 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
        
    );

但总是出现以下错误:

。 [额外]:执行操作“ProxyAuthAppLoginQuery”时出错:在 Query.proxy_auth_app_login:解析字段失败。 W/System.err: 在 com.facebook.login.LoginManager.onActivityResult(LoginManager.java:190) W / System.err:在 com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:159) W / System.err:在 com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:82) W / System.err:在 com.procibernetica.moca.MainActivity.onActivityResult(MainActivity.java:130) W / System.err:在 android.app.Activity.dispatchActivityResult(Activity.java:5423) W / System.err:在 android.app.ActivityThread.deliverResults(ActivityThread.java:3401) W / System.err:在 android.app.ActivityThread.handleSendResult(ActivityThread.java:3448) W / System.err:在 android.app.ActivityThread.access$1300(ActivityThread.java:138) W / System.err:在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) W / System.err:在 android.os.Handler.dispatchMessage(Handler.java:102) W/System.err: 在 android.os.Looper.loop(Looper.java:149) W/System.err: 在 android.app.ActivityThread.main(ActivityThread.java:5061) W/System.err:在 java.lang.reflect.Method.invokeNative(Native 方法)W / System.err:在 java.lang.reflect.Method.invoke(Method.java:515) W/System.err: 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) W / System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603) W/System.err:在 dalvik.system.NativeStart.main(Native Method)

我已添加以下权限。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

【问题讨论】:

我有同样的问题,如果您找到任何解决方案,请自行回答您的问题。 我也有同样的问题。看来问题出在Facebook本身.. 尝试重新检查您的 Facebook APP ID 这些解决方案都没有解决我的问题:( 正如登录时底部的评论所说,您应该添加基本应用权限“email”、“public_profile”、“user_friends” 【参考方案1】:

对于 Flutter,这是解决方法

final LoginResult result = await FacebookAuth.instance.login(
      permissions: [
        'public_profile',
        'email',
        'pages_show_list',
        'pages_messaging',
        'pages_manage_metadata'
      ],
    );

【讨论】:

【参考方案2】:

我找到了解决方案,当您的应用中没有评估用户时会发生这种情况。

在您的面板应用中输入 选择角色

并添加测试用户,当您尝试使用测试用户登录时,应用程序执行不会失败

【讨论】:

值得注意的是,需要这样做的原因是因为您的应用处于“开发模式”(请参阅​​“应用审查”面板上的设置)。开发模式应用程序被认为是私有的,只能由特别授权的用户使用。将应用程序公开会消除此限制,因此可以替代列出您想要访问的用户。 这在我的情况下不起作用,但得到相同的异常。你能帮忙吗?我添加了测试人员,现在使用测试人员帐户登录。还是一样的异常 另一种解决方案是将app设置为public,按照@AMAN SINGH的回复,刷新token 我已经发布了我的应用程序,但我看到了同样的错误。我还仔细检查以确保我的 App ID 正确 @Gabriel 您是否设法解决了这个问题?我提出了同样的问题。我已经发布了我们的应用程序,但仍然会发生这种情况。【参考方案3】:

您需要查看在手机facebook应用中连接的用户是否是在应用页面的facebook开发者中拥有测试或开发者权限的用户。

【讨论】:

【参考方案4】:

试试这个,在 android build 文件夹中找到你的 app-debug.apk

keytool -printcert -jarfile app-debug.apk | openssl sha1 -binary | openssl base64

将其粘贴到 facebook 密钥哈希中。

【讨论】:

【参考方案5】:

我刚刚通过 https://developers.facebook.com/apps/ 修复了它 然后选择我的应用

switch to live mode

"从左上角到应用 ID"

【讨论】:

我的应用无法切换,它显示消息为“您可能无法让所有用户都可以使用您的应用”【参考方案6】:

我不知道这是否会有所帮助,但根据个人经验,当您生成开发密钥时,您需要输入“android”密码,并确保在字段中添加代码时在代码后添加 =在开发者 facebook 域上

【讨论】:

【参考方案7】:

我遇到了类似的问题,因为 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>
...

【讨论】:

这就是为我解决这个问题的原因。文档中似乎缺少它。 这是对具有 FirebaseUI 依赖项的应用的修复。尝试编译应用程序时,将显示一条错误消息,提示此解决方案。 请问“tools:replace”从何而来?【参考方案8】:

我刚刚添加了这一行,它对我有用。

facebookLogin.setReadPermissions("email", "public_profile", "user_friends");

【讨论】:

我是否需要启用以上所有权限 facebook 开发者帐户?还是自动启用? 在我的帐户中,它只有 public_profile 和 email 作为它的权限。但如果我使用它,它会显示未支持的请求。你确定,我需要确定所有上述三个权限吗? 您可以尝试在开发者帐户上启用上述所有权限,可能对您有用。 如果我不启用以上三个并且只添加两个权限是否有效? 我得到了一些错误的用户界面【参考方案9】:

问题日志:SERVER_ERROR:[code] 1675030 [message]:执行查询时出错

以及针对此特定问题的准确解决方案执行查询时出错@aloha 的回答是更新访问查询。 loginButton.setReadPermissions("email", "public_profile", "user_friends");

    查找调用 facebook 登录按钮的位置。 然后将按钮的 ReadPermission 设置为 "email"、"public_profile"、"user_friends"

图片参考

问题日志:应用程序未设置。此应用程序仍处于开发模式。而且您无权访问它。注册测试用户或向应用管理员申请权限

    应用未处于实时模式 您未在 https://developers.facebook.com/app/yourapp 中列为管理员或测试人员 您的应用程序哈希键未设置。如果 Facebook 应用程序无法处于实时模式,您需要一个 hashkey 来测试它。因为该应用程序尚未上线。 Facebook 不允许访问。

如何切换到直播模式 1. 转至:https://developers.facebook.com 2. 在“我的应用程序”列表中选择您的应用程序 3.将开关从OFF切换到ON

如何添加为测试或管理员 1. 转至:https://developers.facebook.com 2. 在“我的应用程序”列表中选择您的应用程序 3. 转到:角色 > 角色 > 按添加,例如管理员 4. 搜索您的新管理员/测试员 Facebook 帐户。 5. admin必须输入facebook密码确认。然后提交 新管理员必须前往 developer.facebook 页面并接受请求 6. 转至:https://developers.facebook.com 7. 个人资料 > 请求 > 确认 8. 恭喜您已被指定为新管理员

如何获取和设置 HASHKEY 用于开发 参考 Facebook 登录文档https://developers.facebook.com/docs/android/getting-started/#create_hash 我最喜欢的解决方案是通过代码(Troubleshooting Sample Apps) 它将打印出哈希键。你可以更新它 https://developers.facebook.com/apps/yourFacebookappID/settings/basic/ 在 Android > Key Hashes 部分

如何获取 hashKey 的分步过程。

    首先将代码添加到任何 oncreate 方法中

    运行应用程序并在 Logcat 中搜索 KeyHash

如何在 Facebook 开发者上更新的分步过程。

    打开 Facebook 开发者页面。您需要访问以更新 Facebook 开发者页面:https://developers.facebook.com

    按照以下步骤操作。

【讨论】:

那么这三个权限也需要在Facebook开发者账户的应用审核中启用?我对么? 1. 我的应用程序加载并显示执行查询的错误。添加电子邮件和 user_friends,public_profile 后,它会在 UI 中显示应用程序未设置错误。重新申诉后会解决这个问题吗?【参考方案10】:

在我的情况下,问题是生成的密钥哈希错误,需要在 Facebook 应用页面上提交 在这篇文章中找到的解决方案https://developers.facebook.com/docs/facebook-login/android/advanced

手动检查密钥散列 - 您可以打印发送到 Facebook 的密钥散列并在 App Dashboard 中使用该值。在您的主要活动中对 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)   


【讨论】:

【参考方案11】:

在我的情况下,生成的哈希密钥是错误的,因为我使用了错误的 OpenSSL。 我使用的是 openssl-0.9.8k_X64.zip 而不是 openssl-0.9.8e_X64.zip,这为我生成了一个错误的哈希键,导致了这个问题,希望它可以帮助我失去了 8 个小时试图解决这个问题的人。

【讨论】:

【参考方案12】:

Live developer mode 请检查开发者模式的状态。它必须是“活的”。 首先,您需要为自己的 facebook 项目添加隐私 url,您想要测试 facebook 登录或...然后启用开发者模式(打开)

【讨论】:

【参考方案13】:

以上所有答案都没有帮助我,当你使用这个命令时做了什么

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

获取您在 facebook 配置中放入的密钥哈希。

它会要求你输入密码,一开始我没有设置任何密码,所以当我输入android作为密码时,问题就发生了。成功了!

【讨论】:

这为我解决了!我已经从 strings.xml 更改了应用程序 ID,并做了许多其他建议的答案。非常感谢。【参考方案14】:

facebook 上的文档不正确。我必须添加所有 3 个默认权限才能使其正常工作。

loginButton.setReadPermissions("email", "public_profile", "user_friends");

【讨论】:

谢谢,这个解决方案对我有用,上面标记为正确的解决方案不起作用。如果这与使用自定义登录 Facebook 相关,我不这样做,这意味着在我的应用程序中,我将 fbk 登录按钮更改为 android 按钮。没关系它有效 对我也有用,但让我想知道是否需要所有三个读取权限,为什么 Facebook 官方文档只提到“电子邮件”权限? 感谢它在我省略了user_friends后对我有用 @liorko 您的评论自相矛盾,您表示感谢并说您省略了 user_friends,请澄清 @AkshayVijayJain 这行对我有用:loginButton.setReadPermissions("email", "public_profile")【参考方案15】:

在您的 strings.xml 中添加一个字符串资源“facebook_application_id”

将 APP_ID 替换为您的 Facebook 应用 ID

<string name="facebook_application_id" translatable="false">APP_ID</string>

【讨论】:

【参考方案16】:

除了其他答案,我还请检查用于登录的帐户的电子邮件是否经过验证。

【讨论】:

【参考方案17】:

@Danial 回答正确,但我想在其中添加更多内容。此类错误仅在您正在开发的应用程序中出现。关注此link 并选择您的应用程序。然后你可以在这里做两件事。在角色选项卡中,您可以只允许您的朋友登录,或者选择App Review并设置您的app public,然后任何人都可以登录。

【讨论】:

【参考方案18】:

在其他情况下也会返回此错误 - 即使您的应用是公开的或您被列为测试人员。

仔细检查您的

&lt;meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/&gt;

正在解析为正确的 Facebook 应用 ID,尤其是如果您使用 gradle build 动态指定它,而不是在 strings.xml 中硬编码。

【讨论】:

以上是关于SERVER_ERROR:[代码] 1675030 [消息]:执行查询时出错的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 登录,哈希键问题 - Flutter ,如何在 Flutter 中生成 Facebook Hashkey?

Java 代码块,普通代码块,构造代码块,静态代码块

在区分源代码,对象代码,汇编代码和机器代码时,我有一个困惑

Java中普通代码块,构造代码块,静态代码块区别及代码示例

Java中普通代码块,构造代码块,静态代码块区别及代码示例2 构造代码块

Java中普通代码块,构造代码块,静态代码块区别及代码示例2 构造代码块