С помощью Facebook iOS SDK 3.1.1 я выполняю логин, используя этот вызов -
NSArray *permissions = [[NSArray alloc] initWithObjects: @"email", @"user_birthday", @"user_location", nil];
@try {
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
@catch { ... }
Есть редкие случаи, когда этот метод выдает NSInvalidArgumentException
с сообщением Access options are not permitted for this account type. The options argument must be nil.
, это выбрано из [ACAccountStore requestAccessToAccountsWithType:options:completion:]
.
Проверяя документы Apple ACAccountStore
, я вижу этот комментарий для этого метода:
"Для некоторых типов учетных записей (например, Facebook) требуется словарь параметров. Этот метод генерирует исключение NSInvalidArgumentException, если для таких типов учетных записей не указан словарь параметров. И наоборот, если для типа учетной записи не требуется словарь параметров, параметры параметр должен быть равен нулю."
Apple требует, чтобы это было ноль, за исключением Facebook, но этот метод вызван из Facebook, поэтому, возможно, это ошибка - либо в Facebook, либо в iOS 6.0/.1, но я не мог найти что-либо в Интернете о этот вопрос.
Любые идеи?