我正在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对话框询问相同的用户名和密码吗?
答案 0 :(得分:1)
回答我自己的问题。 Facebook-sdk 3.5版解决了这个问题。