Użyłem facebook SDK do uwierzytelnienia z Facebookiem. Gdy nie ma konta facebook włączona w ustawieniach następnie kliknąć w przycisk aplikacji idzie na safari do uwierzytelniania tjACAccountType zawsze pokazuje 0 kont
if (appDelegate.session.state != FBSessionStateCreated)
{
appDelegate.session = [[FBSession alloc] init];
}
[appDelegate.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
// and here we make sure to update our UX according to the new session state
[self updateView];
}];
inaczej jeśli konto Facebook jest włączona wtedy
NSArray *fbAccounts=nil;
ACAccountType *accountTypeFB;
if ((_accountStore = [[ACAccountStore alloc] init]) &&
(accountTypeFB = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook])){
fbAccounts = [_accountStore accountsWithAccountType:accountTypeFB];
NSLog(@" %d fbAccounts",[fbAccounts count]);
}
if ([fbAccounts count]!=0) {
[FBSession openActiveSessionWithAllowLoginUI:YES];
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"email",
nil];
[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (error) {
NSLog(@"Failure");
NSLog(@"error %@",error);
}
else
{
NSLog(@" active session opened ");
if (self.gotUserDetails)
{
return;
}
[self fetchuserinfo];
}
}];
}
}
ten obraz pokazujący ostrzeżenie, aby uzyskać dostęp do informacji o użytkowniku. Działa dobrze na symulatorze. Ale w urządzeniu zawsze idzie do safari lub w aplikacji facebook do uwierzytelniania nawet konto Facebook jest włączone w ustawieniach. Pomóż mi znaleźć ten problem.
Dziękuję wszystkim.
Czy nazwałeś 'requestAccessToAccountsWithType: options: completion:'? – Wain
@ Wain, gdzie powinienem to nazwać? –