Facebook SDK:WebDialog授权两次询问用户名和密码(一次读取,一次发布)

时间:2013-09-04 22:16:10

标签: android facebook-sdk-3.0

我正在Android上开发,我正在使用Facebook SDK 3.0.2版。

当有Facebook应用程序存在时,它会通过Facebook应用程序登录,当没有Facebook应用程序时,会弹出Web对话框并询问用户名和密码。因此,这是一个没有安装Facebook应用程序并显示Web对话框的情况。

public static String[] PERMISSIONS_READ = new String[] { "read_stream"};
public static String[] PERMISSIONS_WRITE = new String[] { "publish_stream"};

Session.OpenRequest openRequest = null;
            openRequest = new Session.OpenRequest(activity);
            if (openRequest != null) {
                openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS);
                openRequest.setPermissions(Arrays.asList(PERMISSIONS_READ));
                openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
                session.openForRead(openRequest);
            }

session.openForRead()打开一个Web对话框,询问用户名和密码。 由于只授予了读权限,我调用了另一个发布权限请求:

Session session = Session.getActiveSession();
            Session.OpenRequest openRequest = null;
            openRequest = new Session.OpenRequest(activity);
            if(session != null) {
                Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(activity, Arrays.asList(PERMISSIONS_WRITE));
                session.requestNewPublishPermissions(newPermissionsRequest);
        }

session.requestNewPublishPermissions()会显示另一个Webview对话框,询问用户名和密码。

所以最后,用户输入相同的用户名&密码两次!我们可以避免第二个webview对话框询问相同的用户名和密码吗?

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。 Facebook-sdk 3.5版解决了这个问题。