iOS Facebook rodzimy login (bez SDK Facebooka)
Próbuję używać rodzimych bibliotek (iOS 6-7x), aby autoryzować użytkownika za pomocą Facebooka z mojej aplikacji. Chciałbym przekazać token autoryzacji do mojego serwera, gdy logowanie się powiedzie.
Poniższy kod działa poprawnie, chyba że użytkownik nie skonfigurował swojego konta Facebook w systemie operacyjnym. W tym przypadku pojawia się następujący błąd:
Error Domain = com.apple.accounts Code = 6 "Operacja nie mogła zostać zakończona. (Com.apple.accounts error 6.)
-(void) initFacebookLogin
{
LRAppDelegate *appDelegate = [[UIApplication sharedApplication]delegate];
if (appDelegate.accountStore == nil)
appDelegate.accountStore = [[ACAccountStore alloc] init];
__block ACAccount *facebookAccount = nil;
ACAccountType *facebookAccountType = [appDelegate.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSArray * permissions = @[@"publish_stream", @"publish_actions", @"email"];
NSMutableDictionary *options = [[NSMutableDictionary alloc] initWithObjectsAndKeys:FACEBOOK_APP_ID, ACFacebookAppIdKey, permissions, ACFacebookPermissionsKey, ACFacebookAudienceOnlyMe, ACFacebookAudienceKey, nil];
[appDelegate.accountStore requestAccessToAccountsWithType:facebookAccountType
options: options
completion: ^(BOOL granted, NSError *error) {
if ( granted )
{
NSArray *accounts = [appDelegate.accountStore accountsWithAccountType:facebookAccountType];
facebookAccount = [accounts lastObject];
ACAccountCredential* accountCredential = [facebookAccount credential];
NSString* token = [accountCredential oauthToken];
NSLog( @"token=%@", token );
}
else {
// WHAT DO I DO HERE???
// Error Domain=com.apple.accounts Code=6 "The operation couldn’t be completed. (com.apple.accounts error 6.)"
NSLog(@"%@", [error description]);
}
}];
}
Czy nadal muszę używać zestawu SDK Facebooka, aby poprosić użytkownika o zalogowanie się? Czy istnieje inna rodzima biblioteka iOS, której mogę użyć, aby poprosić użytkownika o skonfigurowanie dostępu do Facebooka w systemie iOS?
LUB czy jest lepszy sposób na usprawnienie autoryzacji Facebooka (nie prosząc użytkownika o zalogowanie się, jeśli zrobili to już w systemie operacyjnym)?