2012-12-18 7 views
7

Czy jest jakiś sposób poznania z FACEBOOK SDK 3.1 i iOS 6, jeśli użytkownik zdefiniował swoje konto na Facebooku w ustawieniach iPhone'a dla natywnego korzystania z Facebooka?Rozpoznanie, czy użytkownik zdefiniował natywne konto Facebooka w ustawieniach iOS 6.

Co chcę zrobić, gdy otwiera się moja aplikacja, jeśli użytkownik zdefiniował "natywne konto Facebook" w ustawieniach iPhone'a, natychmiast pokaż komunikat "Zezwalaj/nie zezwalaj" na iOS 6. Ale chcę to zrobić tylko dla natywnej integracji. Co mam na myśli, to to, że jeśli wiem, mogę po prostu spróbować "openSession" z FBSession, i to pokaże, ale jeśli użytkownik nie zdefiniował konta natywnego, nie chcę, aby aplikacja trafiła do Safari lub na facebooka aplikacja. Dlatego chcę spróbować połączyć się tylko wtedy, gdy użytkownik zdefiniował konto.

ktoś zna sposób na poznanie?

+0

Zostało tutaj odpowiedział: http://stackoverflow.com/a/12811583/312312 – Lefteris

+1

Hej pierwsze dzięki przydzieleniu !!! problem wydaje się, że nawet jeśli konto zostało skonfigurowane, czy nie ACAccountType * at = [as accountTypeWithAccountTypeIdentifier: @ "com.apple.facebook"]; nie wygląda na zero w ios 6 –

Odpowiedz

2

To działa dla mnie:

//Step 1. create and store an ACAccountStore in an ivar 
ACAccountStore* as = [[ACAccountStore alloc] init]; 
self.accountStore = as; 
[as release]; 

//Step 2. Get the facebook account type 
//Do not use the constant if you are in iOS5, use this string:@"com.apple.facebook" 
ACAccountType* at = [self.accountStore accountTypeWithAccountTypeIdentifier: @"com.apple.facebook"]; 

//Step 3. request access to the facebook account, passing your facebook app id 
__block typeof(self) bself = self; 
[self.accountStore requestAccessToAccountsWithType:at 
          options:@{(NSString *)ACFacebookAppIdKey: kFBAppId } 
         completion:^(BOOL granted, NSError *error) 
{ 
    //Step 4. Check if the account is integrated natively 
    //Note: if granted is NO, check for the error to see what's going on. 
    BOOL nativeAccount = granted == YES && [bself.accountStore accountsWithAccountType:at]; 


    //Step 5. clean the account store. 
    bself.accountStore = nil; 
}]; 
Powiązane problemy