在android中登录facebook

时间:2013-06-06 11:21:04

标签: android facebook login

现在我正在通过facebook登录。为此我使用android sdk 3.0。在我的应用程序中,我必须获得用户电子邮件ID。我使用以下代码来获取电子邮件ID,但我无法得到。你能给我任何建议我做错了吗?每次我要去别的地方。

loginButton = (LoginButton) findViewById(R.id.authButton);
    // for error on login
    loginButton.setOnErrorListener(new OnErrorListener() {

        public void onError(FacebookException error) {
            Log.i(TAG, "Error " + error.getMessage());
        }
    });
    // loginButton.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);

    // set permission list, Don't forget to add email
    loginButton.setReadPermissions(Arrays.asList("basic_info", "email"));

    // session state call back event

    loginButton.setSessionStatusCallback(new Session.StatusCallback() {

        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            if (session.isOpened()) {

                Log.i(TAG, "Access Token" + session.getAccessToken());
                Request.executeMeRequestAsync(session,
                        new Request.GraphUserCallback() {

                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (user != null) {
                                    Log.d(TAG, "User ID " + user.getId());
                                    Log.d(TAG,
                                            "Email "
                                                    + user.asMap().get(
                                                            "email"));

                                }
                            }

                        });

            } else {
                Log.d("session is not valid", ""
                        + Session.getActiveSession().getState());
            }

        }

    });

1 个答案:

答案 0 :(得分:0)

您可以使用它来获取密钥

PackageInfo info = getPackageManager().getPackageInfo(
        "Your Pakage name", 
        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));
    }

密钥将显示在日志中。

另一件事(基于您的评论)是您应该尝试SVN,以便您的团队可以在没有任何冲突的情况下处理同一个项目