0

私の大学用のアプリがあり、そこに Facebook SDK を統合して、学生が Facebook に投稿できるようにしました。

最近、Facebook がリリースした新しい SDK のために、さらにテストを行うことにしました。私が見つけたのは、Facebook Sdkによるカスタムダイアログが表示され、必要な権限に関する情報をユーザーに提供した後、何も起こらないということでした。

そのため、私は問題をより深く探求するようになりました。エミュレーターを開いてチェックしたところ、いくつかのエラーと数分後に SSO を機能させることができました。同じコードが私のデバイスでも動作するはずでしたが、上記の問題が再び発生していました。

運がなかったのに。次に、電話から Facebook アプリを削除して、もう一度アプリを試してみることにしました。今回もエミュレータと同じようにSSOがうまくいきました。

そのため、検索後に問題と結果に行き詰まりました。Facebookアプリをインストールしたときの承認と私のアプリの間に問題があることは完全に確信していますが、何が見つかりません。

他の誰かが同じ問題を経験した場合は、あなたの考えを共有してください。誰かが解決策を知っているなら、私は素晴らしいです!

PS: Google はまったく役に立ちませんでした。あなたは私の最後のチャンスです。

Facebookとつながる私の方法:

Session session = Session.openActiveSession(act, true,
            new StatusCallback() {
                public void call(final Session session, SessionState state,
                        Exception exception) {
                    if (session.isOpened()) {
                        Log.d("Session is:", " opened");
                        Request.executeMeRequestAsync(session,
                                new Request.GraphUserCallback() {
                                    public void onCompleted(GraphUser user,
                                            Response response) {
                                        if (user != null) {
//my code goes here                                         

                                        }
                                    }
                                });
                    }
                }
            });
4

2 に答える 2

1

アップデート

キーハッシュを更新してようやく解決しました。なぜそれが問題だったのかわかりませんが、今では問題なく動作します!

于 2013-01-03T19:46:28.383 に答える
0

言及のために、このコードを使用して実際のキーハッシュを見つけます。

PackageInfo info;
try {
info = getPackageManager().getPackageInfo("com.myname.lolo", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
           MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
           //String something = new String(Base64.encode(md.digest(), 0));
            * String something = new String(Base64.encodeBytes(md.digest()));
           Log.e("hash key", something);
} 
}
catch (NameNotFoundException e1) {
Log.e("name not found", e1.toString());
}

catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
}
catch (Exception e){
Log.e("exception", e.toString());
}

このコードは後で削除できます。そして、これに対するすべてのクレジット:Android-Facebookアプリのキーハッシュ

于 2013-01-11T17:19:48.583 に答える