0

请任何人都可以告诉我为什么这段代码不返回结果?它总是停在

( if is.open()) 

并给出错误的。

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

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

                      // make request to the /me API
                      Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

                        // callback after Graph API response with user object
                        @Override
                        public void onCompleted(GraphUser user, Response response) {
                          if (user != null) {
                            TextView welcome = (TextView) findViewById(com.example.connectwithfacebook.R.id.textView1);
                            welcome.setText("Hello " + user.getName() + "!");
                          }
                        }
                      });
                    }
            }
            });     

我实现了另一种方式,但我也遇到了同样的问题。

4

1 回答 1

2

它与您在 facebook 中的 hashkey 有关。运行此代码(确保在第 3 行更改包名称):

    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "your.root.package", 
                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) {

    }

它会将签名作为“KeyHash:XXXXX”输出到 logcat 中。将该密钥复制并粘贴到 facebook 中,wil 应该开始工作。

来自这里的信息

于 2013-07-21T01:42:50.343 回答