Java 服务器错误:[code]1675030[消息]:执行查询时出错
我正在android中使用Facebook登录。Java 服务器错误:[code]1675030[消息]:执行查询时出错,java,android,facebook,facebook-login,Java,Android,Facebook,Facebook Login,我正在android中使用Facebook登录。 代码: callbackManager = CallbackManager.Factory.create(); LoginButton loginButton = (LoginButton) this.findViewById(R.id.login_button); loginButton.setReadPermissions("email", "public_profile"); loginButton.register
代码:
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
}
});
callbackManager=callbackManager.Factory.create();
LoginButton LoginButton=(LoginButton)this.findViewById(R.id.login_按钮);
setReadPermissions(“电子邮件”、“公共档案”);
registerCallback(callbackManager,newfacebookcallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
//应用程序代码
println(Log.ASSERT,“FB”,“inicio会话”);
}
@凌驾
公开作废{
Log.println(Log.ASSERT,“FB”,“操作编号completada”);
//应用程序代码
}
@凌驾
public void onError(facebook异常){
Log.println(Log.ASSERT,“FB”,“Errro de sesion”);
异常。printStackTrace();
//应用程序代码
}
});
但总是会出现以下错误:
服务器错误:[code]1675030[消息]:执行查询时出错。
[额外]:执行操作“ProxyAuthAppLoginQuery”时出错:位于
Query.proxy\u auth\u app\u login:解析字段失败。W/系统错误:在 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 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 main(ActivityThread.java:5061) W/System.err:at java.lang.reflect.Method.invokenactive(本机) 方法)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"/>
我找到了解决方案,当你的应用程序中没有evaluate用户时,就会发生这种情况 进入你的面板应用程序 选择Rol 并添加测试用户,当您尝试使用测试用户登录时,应用程序执行不会失败
@Danial的回答正确,但我想补充一些。只有在应用程序处于开发阶段时,才会出现此类错误。按照此操作并选择您的应用程序。那么你可以在这里做两件事。从角色选项卡,您可以只允许登录您的朋友,或者选择应用程序审查并将您的
应用程序公开
,然后任何人都可以登录。在其他情况下也会返回此错误-即使您的应用程序公开或您被列为测试人员
再次检查您的
正在解析为正确的Facebook应用程序ID,特别是如果您使用gradle build动态指定它,而不是在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\u application\u id”
将应用程序ID替换为您的facebook应用程序ID
<string name="facebook_application_id" translatable="false">APP_ID</string>
APP\u ID
以上所有答案对我都没有帮助,但当您使用此命令时,我帮了忙
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
获取您在facebook配置中输入的密钥哈希
它会要求您输入密码,起初我没有设置任何密码,所以当我输入android
作为密码时,问题发生了。成功了
请检查开发者模式的状态。它必须是“活的”。
首先,你需要为自己的facebook项目添加隐私url,你想测试facebook登录或其他。。。。然后启用开发者模式(打开)在我的例子中,生成的哈希键是错误的,因为我使用了错误的OpenSSL。
我使用的是openssl-0.9.8k_X64.zip,而不是openssl-0.9.8e_X64.zip,这给我产生了一个错误的散列密钥,导致了这个问题,希望它能帮助一些我花了8个小时试图解决这个问题的人。在我的例子中,问题是错误生成的密钥散列,需要在facebook应用程序页面上提交
在本文中找到了解决方案
手动检查密钥哈希值-您可以打印发送到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) {
}
问题日志:服务器错误:[code]1675030[消息]:执行查询时出错
以及此特定问题的准确解决方案(执行查询时出错)
是通过更新访问查询来回答的。
setReadPermissions(“电子邮件”、“公共档案”、“用户朋友”)
查找facebook登录按钮的调用位置
然后将按钮的ReadPermission设置为“电子邮件”、“公共档案”、“用户朋友”
图像参考
问题日志:应用程序
facebookLogin.setReadPermissions("email", "public_profile", "user_friends");
keytool -printcert -jarfile app-debug.apk | openssl sha1 -binary | openssl base64