使用适用于Android的Facebook SDK 3以额外权限登录

我在 https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/跟随“使用Facebook登录创建新的Android项目”部分的步骤登录过程很好.因为我想使用本机Android按钮供用户登录,所以我将以下代码移动到原生Android按钮的View.OnClickListener()中稍微修改代码.以下是侦听器中的代码:
Session.openActiveSession(MainActivity.this,true,new Session.StatusCallback() {
    // callback when session changes state
    @Override
    public void call(Session session,SessionState state,Exception exception) {
        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) {
                        Toast.makeText(getApplicationContext(),"Hello " + user.getName() +" "+user.getId()+"!",Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
});

onActivityResult()和AndroidManifest.xml与教程相同

@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);
    Session.getActiveSession().onActivityResult(this,requestCode,data);
}

但是,我想在用户成功登录时请求“read_friendlists”.我在https://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/阅读了教程,但它使用了Facebook SDK自定义按钮.如何使用上面显示的代码之类的原生Android按钮实现相同的行为?

解决方法

我刚刚在另一篇文章中回答了类似的问题.我的解决方案允许您在用户首次登录时使用本机按钮并请求其他读取权限.请在此处查看 Ask for more permissions with 3.0 SDK

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...