0

Facebook ログインを含む Android アプリケーションの開発に Facebook SDK 3.0 を使用しています。

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 ログインが機能しなくなり ( 「セッションが開かれていません」とトーストされました)、Facebook ログイン ダイアログが表示されません。 Eclipse を使用して携帯電話でプロジェクトを実行すると、すべて問題ありません。次に、このアプリケーションのすべてのコンテンツを削除し、.apk ファイルを使用してプロジェクトをインストールします。アプリを起動すると、Facebook ログインが機能しません。

プロジェクトを Android アプリケーションとしてエクスポートします。最初は debug.keystore を既存のキーストアとして使用しようとしましたが、機能せず、新しいキーストアを作成しようとしましたが、これも機能しませんでした。

キーハッシュを取得しようとしましたが、役に立ちませんでした。

この問題の理由と解決方法を説明できる人はいますか?

4

1 に答える 1

0

しばらくして、新しいキーハッシュを生成することで、この問題を最終的に解決しました。それはおそらく私の 5 番目のキー ハッシュであり、少なくともいくつかは debug.keystore とは異なるキーストアを使用して生成されました。しかし、今回は少し異なる方法を使用し、別のキー ハッシュが形成されました。私が使用した方法はそこに記載されています:

署名済み APK には Facebook 用の異なるキー ハッシュがあります

于 2013-07-11T19:17:45.973 に答える