Android LoginButton:发生错误。请稍后再试(无效的应用程序ID:提供的应用程序ID无效。)

时间:2013-04-18 09:37:13

标签: android facebook-android-sdk

我按照教程“Use Facebook Login”进行了演示。

我在MainFragment中设置了这段代码:

LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
authButton.setReadPermissions(Arrays.asList("user_likes", "user_status"));

使用第二个帐户登录时遇到错误。我的意思是我之前使用其他帐户成功登录。然后我退出了,并尝试使用第二个帐户登录。

它显示一个错误对话框,显示消息“发生错误。请稍后再试”,右侧标题为“错误”和“正常”按钮。

我试图看到错误添加以下代码。我知道了,但我现在仍然不明白该怎么做。

authButton.setOnErrorListener(new OnErrorListener() {
        @Override
        public void onError(FacebookException error) {
            Log.e("test", "error: "+error.getMessage());
        }
    });

它显示:

error: kError 1349040: Invalid Application ID: The provided Application ID is invalid.

但是当我之前尝试使用该帐户登录时,它又成功了。

在此错误之前,我遇到了此错误:

remote_app_id does not match stored id

我将设置中的密钥哈希更改为推荐的“Getting Started with the Facebook SDK for Android”。添加代码:

 // 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) {

    }

以便它成功登录。

另外,我试图使用发布密钥并签署我的apk。结果是相同的。一个帐户可以,另一个不能。

现在,这一天,我再次尝试。错误消失了。只显示一个白色的对话框,左上方没有任何删除按钮。

注意:我使用Facebook SDK for Android V3.01。

[问题已解决]

有两个因素导致了这个问题。

首先,这是我的Openssl实用程序是错误的。然后我从使用Facebook登录推荐的文档下载它

其次,默认情况下会检查沙箱。如安东罗伊在答案中所述,我取消选中仪表板中的沙盒模式。

1 个答案:

答案 0 :(得分:4)

你在facebook应用程序上取消选中sandbox mod吗?

默认启用它,我遇到了和你一样的问题,它解决了我的问题。