Я пытаюсь понять, как работает новый API, поэтому мне удалось понять концепцию и удалось сделать свой собственный "мир привет", который входит в систему на facebook, выходит из системы и пытается загрузить изображение.
Теперь как в HelloFacebookSample, так и в SessionLoginSimple есть простой вход в facebook, а в HelloFacebookSample, когда вы нажимаете "Опубликовать фотографию", появляется новое диалоговое окно для входа в систему, поскольку разрешения не установлены.
это код из HelloFacebookSample:
private void performPublish(PendingAction action) {
Session session = Session.getActiveSession();
if (session != null) {
pendingAction = action;
if (session.getPermissions().contains("publish_actions")) {
// We can do the action right away.
handlePendingAction();
} else {
// We need to reauthorize, then complete the action when we get called back.
Session.ReauthorizeRequest reauthRequest = new Session.ReauthorizeRequest(this, PERMISSIONS).
setRequestCode(REAUTHORIZE_ACTIVITY).
setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
session.reauthorizeForPublish(reauthRequest);
}
}
}
Так как у нас нет "publish_actions", нам нужно повторно авторизовать.
В журнале SimpleSessionLogin выглядит так:
private void onClickLogin() {
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(new Session.OpenRequest(this).setCallback(statusCallback));
} else {
Session.openActiveSession(this, true, statusCallback);
}
}
Итак, я не могу понять, как запрашивать разрешения при входе в систему. Это вроде странно или сказать лишний, чтобы войти в службу дважды за пару секунд с точно таким же диалогом.
Звучит для пользователя, что что-то не так или странно.
Я хочу войти в facebook один раз с требуемыми разрешениями, но используя сеансы сеанса API 3.0, а не устаревшие.
Может кто-нибудь объяснить, как?