It is my understanding that when I invoke [ACAccountStore requestAccessToAccountsWithType:options:completion], the user is supposed to see an UIAlert that asks
[ACAccountStore requestAccessToAccountsWithType:options:completion]
You have inverted objects and keys in your options dictionary :
NSDictionary *options = [[NSDictionary alloc] initWithObjectsAndKeys: @"##########", ACFacebookAppIdKey, [NSArray arrayWithObject:@"email"], ACFacebookPermissionsKey, nil];