使用Facebook的android sdk进行身份验证时出现“错误”

时间:2011-05-25 18:48:11

标签: android facebook authentication facebook-graph-api

我正在使用我正在处理的Android应用程序对用户进行身份验证(或尝试),而我从facebook对话框获得的是,发生了一个错误,但没有详细说明错误是什么。我没有异常追逐或追逐任何类型的东西。我已按照http://developers.facebook.com/docs/guides/mobile/#android创建了我的登录对话框。

该页面显示使用新Facebook(“YOUR_APP_ID”);这导致错误,我也尝试了api键,但它给出了相同的东西。 除了敬酒之外我什么也没做,但是我甚至没有在回调中得到回复,直到我点击返回键离开facebook对话框

public class Base {
private Facebook fb;

    public Base() {
        fb = new Facebook("app_id_here");
    }

    public void onCreate(Bundle b) {
        super.onCreate(b);
    }

    private void doLogin() {
        fb.authorize(this, new DialogListener() {
            public void onComplete(Bundle values) {
                Toast.makeText(getApplicationContext(), values.toString(),
                        Toast.LENGTH_LONG).show();
            }
            public void onFacebookError(FacebookError error) {
                Toast.makeText(getApplicationContext(), error.getMessage(),
                        Toast.LENGTH_LONG).show();

            }

            public void onError(DialogError e) {
                Toast.makeText(getApplicationContext(), e.getMessage(),
                        Toast.LENGTH_LONG).show();
            }

            public void onCancel() {
                Toast.makeText(getApplicationContext(),
                        "You must be registered and signed in to perform that action",
                        Toast.LENGTH_LONG).show();

            }
        });
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        fb.authorizeCallback(requestCode, resultCode, data);
    }
}

知道为什么会出错或者我在哪里/如何找到导致错误的原因 P.S我还在FB应用程序设置页面的“移动和设备”下添加了密钥哈希,这与在Login failed invalid key error with Facebook SDK找到的问题不同我在那里尝试了建议。它不起作用

2 个答案:

答案 0 :(得分:14)

我也遇到了这个问题。首先,我需要知道你在facebook应用程序中输入的Key Hash值是否为“ ga0RGNYHvNM5d0SLGQfpQWAPGJ8 = ”然后就是问题。我想你进入了

  

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

终端上的这个,你输入了自己的密码来生成密钥哈希。如果您这样做,请尝试执行以下操作,同时在终端上输入上述命令(我正在使用UBUNTU(linux)。您键入与您正在使用的操作系统相对应的命令)和输入密码为'android' 即可。这次你会得到一个不同的hey哈希值。复制该值并将其保存为您的Facebook应用程序的键哈希值。在检查之后它是否正常工作。对我来说它有效。当我们使用调试密钥时会发生这种情况。在此之后,当您即将在Android市场上发布此应用程序时,您将不得不再次根据您使用的私钥更改密钥哈希值。试试这可能会对你有帮助。

答案 1 :(得分:0)

就我而言,“〜/ .android / debug.keystore”是这个问题的“关键”。 检查“debug.keystore”的文件夹URL。 您必须准确地将此更改为正确的URL。 然后,运行以下命令..

$ cd /cygdrive/c/Users/watchout/.android< ====我的调试密钥库URL $ keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base 64

它询问“密码”,但调试密钥库没有密码。 所以,你可以按“输入密钥”,然后给我一把钥匙。 我用它然后我解决了这个问题。 再试一次,robinsonc494!