Facebook android sdk 登录权限问题

Posted

技术标签:

【中文标题】Facebook android sdk 登录权限问题【英文标题】:Facebook android sdk login permission issue 【发布时间】:2013-10-24 06:58:28 【问题描述】:

我正在尝试从我的应用程序登录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);
            
        
    );

【问题讨论】:

如果您已经提供了访问权限,该提示将再次被机器人打开。 没有。它根本不会来。即使是第一次。 添加了答案.. 尝试一下 【参考方案1】:

试试这个..

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);
            

【讨论】:

以上是关于Facebook android sdk 登录权限问题的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 的服务器端使用 facebook SDK 验证/验证 android 应用程序的用户访问权限?

如果应用程序已经授权 facebook sdk android 应用程序,则不显示权限窗口

Facebook SDK 3.8:未返回权限 publish_actions

Swift:Facebook SDK,成功登录后检查丢失的权限

如何知道用户之前是不是已经授予 Facebook SDK 权限

更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录