Как можно пропустить диалоговое окно разрешений для единого входа Facebook на iOS? - PullRequest
3 голосов
/ 27 марта 2012

У меня есть приложение для iPad, которое требует от пользователей входа в Facebook.Я реализовал это с помощью iOS SDK, который поставляет Facebook, но я пытаюсь поймать возвращающихся пользователей.Вот шаги, которые они предпринимают:

  • Пользователь загружает наше приложение впервые.
  • Они нажимают кнопку «Войти», которая перенаправляет их в приложение Facebook для iPad, если оно у него есть.Установлено.
  • Они видят диалоговое окно с разрешениями, которые они принимают.
  • Они выходят из нашего приложения и закрывают его.
  • Позже они снова открывают наше приложение.
  • Они нажимают кнопку «Войти» в нашем приложении.
  • Это приводит их к приложению Facebook iPad, которое дает пустой диалог разрешений, показанный ниже, так как они уже авторизовали нас и предоставили намполные права доступа.

Проблема в том, что мы видим сбитых с толку пользователей, поскольку призыв к действию («Хорошо») скрыт в левом верхнем углу строки заголовка, а обмен сообщениями неясен.В нашем тестировании приложение Flipboard кратко отображает диалоговое окно в этой ситуации, но оно автоматически закрывается и управление возвращается вызывающему приложению.Это то, что мы хотели бы случиться и в нашем случае, но неясно, как этого добиться.Вот несколько вещей, которые я до сих пор пробовал, но которые не решили проблему:

  • Обновлен до последней версии iOS iOS SDK на https://github.com/facebook/facebook-ios-sdk
  • Передача nil или пустой массив[авторизовать в Facebook]
  • Поиск в документации (и в Интернете) любых релевантных лидов
  • Проверка кода SDK на наличие недокументированных параметров

Есть ли у кого-нибудь предложенияо том, как пропустить этот повторный диалог авторизации при повторном посещении?Любая помощь высоко ценится.

iPad screenshot

Ответы [ 3 ]

1 голос
/ 06 апреля 2012

Как только мы смогли получить одобрение и релиз магазина приложений, мы обнаружили, что обновление сведений о едином входе с помощью идентификатора пакета Apple приводило к тому, что диалог вел себя как ожидалось.

0 голосов
/ 27 марта 2012

Сохраняете ли вы информацию о сеансе, как описано в шаге 6, и читаете в шаге 3 из Учебное пособие по IOS ?

Если это так, если вам придется начать расширять токен: https://developers.facebook.com/docs/mobile/ios/build/#extend_token

Это относительно новое, теперь offline_access устарело.

0 голосов
/ 27 марта 2012

Это было продемонстрировано в документации API iOS для Facebook , в частности, на шаге 4 "Изменение файла заголовка делегата приложения"

if (![facebook isSessionValid]) {
    [facebook authorize:nil]; // this is what displays the facebook dialog
}

isSessionValid проверяет, существует ли действительный файл cookie, и если он существует, то вам не нужно authorize снова.

Edit:

Мне пришло в голову, что если ваши пользователи долгое время не используют ваше приложение, то срок действия вашего cookie все равно истечет. Тогда я не уверен, что мы можем что-то с этим поделать, потому что аутентификация FB (пере) основана на этом диалоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...