#android #facebook
#Android #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 не установлено, откройте веб-диалог.
Спасибо, Маниш Гарг
Ответ №1:
Вы должны удалить эту строку:
request.setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO);
Он сообщает SDK о подавлении единого входа (который является встроенным диалогом).
Комментарии:
1. Привет, я использовал SUPRESS_SSO, потому что я также выполняю поиск в facebook, используя Session.getActiveSession().closeAndClearTokenInformation();. После выхода из системы, когда я снова пытаюсь войти в систему без использования SUPRESS_SSO, приложение не запрашивает учетные данные пользователя.
2. Что вы подразумеваете под «не запрашивать учетные данные пользователя»? Это просто дает вам токен доступа?
3. Допустим, пользователь выполняет следующие действия: 1. Приложение Facebook не вошло в систему, и пользователь входит в систему в первый раз через приложение, он также вошел в приложение facebook (ведет себя как единый вход). 2. Пользователь выходит из facebook с помощью моего приложения, closeAndClearTokenInformation закрывает сеанс только для приложения. 3. Пользователь снова пытается войти в систему с помощью моего приложения на Facebook, поскольку приложение facebook уже вошло в систему, закрыт только сеанс приложения, api facebook не запрашивает учетные данные пользователя и не открывает сеанс.
4. Это ожидаемое поведение. Если пользователь уже вошел в систему через ваше приложение, вы просто получите токен доступа из приложения FB без какого-либо дальнейшего взаимодействия с пользователем. Любой дополнительный пользовательский интерфейс необходим только тогда, когда вы запрашиваете дополнительные разрешения.
5. Спасибо, Мин, я удалил эту строку и ее работоспособность. Теперь я ищу какое-то другое решение для функции выхода из системы