繁体   English   中英

Facebook android sdk登录权限问题

[英]Facebook android sdk login permission issue

我正在尝试从我的应用程序登录facebook并获取用户详细信息。 我使用的是我自己的自定义按钮,而不是facebook sdk v3.5的Loginbutton 我的问题是,在单击按钮后,将显示“询问权限”对话框,该对话框应该供用户同意以获取访问详细信息(例如“朋友列表”,“电子邮件”等)的权限。 而是显示加载符号几秒钟,并直接转到下一个活动。 下面是我正在使用的代码。 我希望当用户单击登录按钮时出现权限对话框。 下面是我的代码

fbLogin.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
             loginToFb();
        }
    });

}

private void loginToFb() {
    Session.openActiveSession(this, true, new Session.StatusCallback() {

        // callback when session changes state
        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            if (session.isOpened()) {
                final Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
                        LandingPageActivity.this, Arrays.asList("user_location", "user_birthday", "user_likes", "email"));
                session.requestNewReadPermissions(newPermissionsRequest);

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

                            // callback after Graph API response with user
                            // object
                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (user != null) {
                                    fetchUserFbDetails(user);
                                    Intent intent = new Intent(getApplicationContext(),
                                            SignUpActivity.class);

                                                startActivity(intent);
                                            finish();
                                    }
                                }
                            }
                        });
                Request.executeBatchAsync(request);
            }
        }
    });
}

尝试这个..

private void loginToFb() {
    Session.openActiveSession(this, true, new Session.StatusCallback() {

        // callback when session changes state
        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            if (session.isOpened()) {
                try
                        {
                            Session.OpenRequest request = new Session.OpenRequest(this);
                            request.setPermissions(Arrays.asList("user_location", "user_birthday", "user_likes", "email"));
                        }
                    catch (Exception e)
                        {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

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

                            // callback after Graph API response with user
                            // object
                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (user != null) {
                                    fetchUserFbDetails(user);
                                    Intent intent = new Intent(getApplicationContext(),
                                            SignUpActivity.class);

                                                startActivity(intent);
                                            finish();
                                    }
                                }
                            }
                        });
                Request.executeBatchAsync(request);
            }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM