2013-06-18 5 views
1

Я следовал всем инструкциям:(BOOL) openSessionWithAllowLoginUI: (BOOL) allowLoginUI никогда не называют

  • (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI определяется в моем AppDelegate заголовка и реализации внешних
  • NSString *const FBSessionStateChangedNotification является уникальным
  • Я использую FBLoginView , точно так же, как в примере Scrumptious sample

Но openSessionWithAllowLoginUI никогда не ссылается d!

Поскольку в этом методе установлены разрешения, я не могу их изменить.

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI 
{ 
    return [FBSession openActiveSessionWithReadPermissions:@[@"basic_info", @"email"] 
               allowLoginUI:allowLoginUI 
             completionHandler:^(FBSession *session, FBSessionState state, NSError *error) 
      { 
       [self sessionStateChanged:session state:state error:error]; 
      }]; 
} 

Что мне делать, чтобы исправить это?

+0

Не проблема с ур. Метод, который вы сказали, что вы должны позвонить –

+0

Проблема заключается в том, что метод, хотя он существует и реализован, никогда не вызывается во время выполнения. –

+0

Некоторый должен назвать этот метод, он не получит вызов автоматически. Фактически из applicationDidFinishLaunching вы должны вызвать этот метод –

ответ

2

Попробуйте обновить свой фейсбук iOS sdk до последней версии.

Используйте @ "Public_profile" вместо @ "basic_info" следующим образом: FBLoginView * loginView = [[FBLoginView alloc] initWithReadPermissions: @ [@ "public_profile", @ "email", @ "user_friends"]];

0

Сайт разработчика Facebook, который они предлагают, вам нужно запустить раздел, когда applicationDidFinishLaunching сам. Поэтому вам нужно позвонить openSessionWithAllowLoginUI: NO (не нужно указывать имя пользователя ui). Не беспокойтесь, если пользователь не войдет в этот метод, не сделает ничего. В другом случае, если пользователь уже авторизовался, он запустит сеанс для пользователя и изменит состояние также (вы получите уведомление), чтобы вы могли соответственно установить кнопку входа в систему. Наконец, этот метод не смог запустить сеанс, чтобы пользователь мог войти в систему через кнопку входа в систему, позвонив по телефону openSessionWithAllowLoginUI: ДА

+0

Я внедрил логин, как и в примере с образцами Scrumptious. Это делается с помощью раскадровки, добавляя 'UIView' и связывая его с классом' FBLoginView'. Решение моей проблемы с запросом разрешения заключается в добавлении 'self.loginView.readPermissions = @ [@" basic_info ", @" email "];' в метод 'viewDidLoad' (после создания для этого выхода). Это ужасно документировано ... –

+0

@btoueg Если вы решили проблему, отправьте ее в качестве ответа и примите ее, чтобы другие могли узнать о решении. – Geek

Смежные вопросы