我正在 Android 上开发,我使用的是 Facebook SDK 3.0.2 版。
当存在 Facebook 应用程序时,它通过 Facebook 应用程序登录,当不存在 Facebook 应用程序时,会弹出网络对话框并询问用户名和密码。所以这是一个没有安装 Facebook 应用程序并且出现网络对话框的情况。
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 对话框要求相同的用户名和密码吗?