Интеграция Facebook v2 с iOS SDK

Я пытался интегрировать Facebook SDK с v2 Api. Поскольку Facebook позволяет пользователю отклонять любое разрешение, которым он не хочет делиться (в основном электронная почта). Но в соответствии с нашими требованиями нам нужна электронная почта пользователя, чтобы зарегистрировать его на сервере (электронная почта является первичным ключом), и электронная почта также используется для подключения пользователя разными способами.

У меня есть некоторые сомнения по этому поводу.

  1. Мне было интересно сделать электронную почту в качестве требуемого разрешения.
  2. Как упоминалось в руководстве по обновлению Facebook, мы можем повторно спросить пользователя об отклоненных разрешениях

Вот пример кода, который пытается сделать при повторном запросе, но не получает электронное письмо пользователя

    [[FBSession activeSession] requestNewReadPermissions:@[@"user_birthday",@"email"] completionHandler:^(FBSession *session, NSError *error) {
          if (session.state == FBSessionStateOpen) {
               [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> facebook_user, NSError *error) {
                      if (error) {
                              [self fbRequestFailedWithError:error];
                      } else {
                              [self processFacebookRequest:facebook_user];
                      }
              }];
       }
}

person Rnk Jangir    schedule 18.07.2014    source источник


Ответы (1)


Вы не можете сделать электронную почту обязательным разрешением, см. здесь: https://developers.facebook.com/docs/apps/upgrading#v2_0_login_Optional_permissions

Не у всех пользователей будет доступный адрес электронной почты, даже если они предоставят вашему приложению разрешение — пользователи, которые зарегистрировались на Facebook по номеру своего мобильного телефона, чей адрес электронной почты возвращается или требует повторной проверки, не будут иметь адрес электронной почты, доступный через API.

Ваш код выглядит как код для повторного запроса разрешений, но также возможно, что вам уже предоставлено разрешение, но у пользователя нет адреса электронной почты.

person Igy    schedule 18.07.2014