Быстрый вопрос о SDK для iOS для Facebook. Я пытаюсь реализовать функции для пользователя, чтобы предоставить моему приложению доступ к расширенным разрешениям.
Пока код работает нормально, когда пользователь принимает запрос расширенного разрешения (из приложения iOS для Facebook, к которому пользователь перенаправляется), у меня возникают проблемы с обнаружением, когда пользователь вернулся к приложению, не приняв разрешения, или нажмите "Отмена", а затем вернитесь в приложение.
Если я нажму "Отменить" и снова включит многозадачность в приложении, ничего не будет зарегистрировано и ничего не будет показано на экране. Когда я снова пытаюсь повторить авторизацию, SDK для Facebook генерирует исключение:
FBSession: неверно повторять авторизацию, пока предыдущий вызов повторной авторизации еще не завершен.
Пока я могу поймать исключение, он по-прежнему не помогает, поскольку я не могу понять, как остановить предыдущий вызов, чтобы пользователь снова попытался повторно авторизировать.
Здесь код, который я использую в данный момент:
@try {
[[FBSession activeSession] reauthorizeWithPermissions:[self requiredPermissions]
behavior:FBSessionLoginBehaviorWithFallbackToWebView
completionHandler:^(FBSession *session, NSError *error) {
if (!error) {
[self fetchUserPermissionsWithCompletionHandler:^(BOOL extendedGranted) {
if (extendedGranted) {
[self setCanPostToActivityStream:YES];
}
}];
}
else {
NSLog(@"%@", [error localizedDescription]);
}
}];
}
@catch (NSException *exception) {
NSLog(@"%@", exception);
}
Теперь проблема не в коде выше - код работает нормально. Проблема, с которой я снова сталкиваюсь, отменяет повторный авторизации предыдущего, когда пользователь не возвращается к приложению после разрешения разрешений. SDK для Facebook, так как он, похоже, никак не предупреждает приложение этой ситуации.