2
在我的应用程序中,我有一个要求,无需登录按钮即可登录Facebook。我试过下面的代码片段在本机对话框中使用Facebook登录而不使用Facebook登录按钮
Session s = new Session(activity);
Session.setActiveSession(s);
Session.OpenRequest request = new Session.OpenRequest(activity);
request.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
request.setCallback(new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (exception != null) {
Toast.makeText(activity, "Facebook" + exception.getMessage(), Toast.LENGTH_SHORT).show();
closeTask = true;
}
else if(session.getState().isOpened()){}
}
});
但它打开网页对话框。我的要求是打开本地对话框,如果Facebook应用程序安装。如果未安装Facebook应用程序,请打开网页对话框。
感谢, 马尼什加尔格
Hi Ming,我已经使用了SUPRESS_SSO,因为我也在使用Session.getActiveSession()来做facebook loogout。closeAndClearTokenInformation();.注销后,当我再次尝试登录而不使用SUPRESS_SSO时,应用程序不会询问用户凭据。 – Manish
“不要求用户凭证”是什么意思?它只是给你一个访问令牌吗? –
假设用户执行以下操作:1. Facebook应用程序未登录并且第一次通过应用程序进行用户登录,它也登录到facebook应用程序(表现为单点登录)。 2.用户注销Facebook使用我的应用程序,closeAndClearTokenInformation仅关闭应用程序的会话。 3.用户再次尝试使用我的应用程序登录Facebook,因为Facebook应用程序已经登录,只有应用程序会话关闭,facebook api不会询问用户凭证并打开会话。 – Manish