0

我正在使用 Facebook SDK 3.0 开发一个包含 Facebook 登录的 Android 应用程序。

我使用这样的功能使用 Facebook 登录:

    public void login(final ProgressDialog dialog) {

    Session.openActiveSession(this, true, new Session.StatusCallback() {

        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            // TODO Auto-generated method stub

            if (session.isOpened()) {
                AppSettings.facebookAuthToken = session.getAccessToken();

                Request.executeMeRequestAsync(session,
                        new Request.GraphUserCallback() {

                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                // TODO Auto-generated method stub

                                if (user != null) {

                                    Log.e("gavau", "kazka");

                                    Calendar cal = Calendar.getInstance();
                                    TimeZone tz = cal.getTimeZone();

                                    RequestParams a = new RequestParams();
                                    // a.put("foo", "bar");
                                    a.put("tz",
                                            ""
                                                    + (tz.getRawOffset() + tz
                                                            .getDSTSavings())
                                                    / 1000);

                                    a.put("fb_id", user.getId());
                                    a.put("fb_authkey",
                                            AppSettings.facebookAuthToken);
                                    Log.e("siunciu", a.toString());

                                    AppSettings.facebookId = user.getId();

                                    NetworkClient.receiveJSON("register/",
                                            a,
                                            new AsyncHttpResponseHandler() {

                                                @Override
                                                public void onSuccess(
                                                        String a) {
                                                    Log.e("gavau", a);
                                                    if (a.equals("0")) {
                                                        Toast.makeText(
                                                                getApplicationContext(),
                                                                "Hi, everything's OK!",
                                                                0).show();

                                                        AppSettings.logged = true;

                                                        onLogin(dialog);
                                                    }

                                                    else
                                                        Toast.makeText(
                                                                getApplicationContext(),
                                                                "bėda " + a,
                                                                Toast.LENGTH_SHORT);
                                                }
                                            });

                                } else {
                                    Toast.makeText(getApplicationContext(),
                                            " User is equal to NULL!", 0)
                                            .show();
                                }

                            }
                        });
            } else {
                Toast.makeText(getApplicationContext(),
                        "Session is not opened", 1).show();

            }

        }
    });
}

开发应用程序时一切正常,但在导出应用程序 Facebook 登录后我不再工作(我得到了 toast "Session is not opening")并且Facebook 登录对话框没有显示。 如果我使用 Eclipse 在手机上运行该项目,那么一切正常。然后我删除该应用程序的所有内容并使用 .apk 文件安装项目。当我启动应用程序时,我的 Facebook 登录无效。

我将项目导出为 Android 应用程序。起初我尝试使用 debug.keystore 作为现有的密钥库,但它不起作用,然后尝试创建一个新的密钥库,这也不起作用。

我试图获取密钥哈希,但没有帮助。

谁能解释这个问题的原因是什么以及如何解决?

4

1 回答 1

0

一段时间后,我终于通过生成新的密钥哈希解决了这个问题。这可能是我的第 5 个密钥哈希,其中至少有几个是使用不同于 debug.keystore 的密钥库生成的。但是这次我使用了一些不同的方法,形成了不同的 key hash。我使用的方法在那里描述:

签名的 APK 对 Facebook 有不同的 Key-Hash

于 2013-07-11T19:17:45.973 回答