2012-12-18 12 views
7

में मूल फेसबुक अकाउंट को परिभाषित किया है, क्या उपयोगकर्ता फेसबुक फेसबुक के लिए आईफोन सेटिंग्स में अपने फेसबुक अकाउंट को परिभाषित करने के लिए फेसबूक एसडीके 3.1 और आईओएस 6 के साथ जानने का कोई तरीका है?पहचानें कि क्या उपयोगकर्ता ने आईओएस 6 सेटिंग्स

मैं अपने ऐप को खोलते समय क्या करना चाहता हूं, यदि उपयोगकर्ता ने आईफोन सेटिंग में "मूल फेसबुक खाता" परिभाषित किया है, तो तुरंत आईओएस 6 अलर्ट को "अनुमति दें/अनुमति न दें" दिखाएं। लेकिन मैं इसे केवल मूल एकीकरण के लिए करना चाहता हूं। मेरा मतलब है, यह है कि अगर मुझे पता है कि मैं केवल एफबीएसशन के साथ "ओपन सत्र" का प्रयास कर सकता हूं, और यह दिखाएगा, लेकिन यदि उपयोगकर्ता ने मूल खाता परिभाषित नहीं किया है, तो मैं नहीं चाहता कि ऐप सफारी या फेसबुक पर जाए एप्लिकेशन। तो मैं केवल तभी कनेक्ट करना चाहता हूं जब उपयोगकर्ता ने एक खाता परिभाषित किया हो।

किसी को भी जानने का तरीका पता है?

+0

यह यहाँ उत्तर दिया गया है: http://stackoverflow.com/a/12811583/312312 – Lefteris

+1

अरे पहले धन्यवाद आवंटित !!! समस्या यह प्रतीत होती है कि यहां तक ​​कि यदि खाता कॉन्फ़िगर किया गया था या ACAccountType * at = [accountTypeWithAccountTypeIdentifier: @ "com.apple.facebook"] के रूप में; आईओएस 6 में शून्य नहीं लगता है –

उत्तर

2

यह मेरे लिए काम कर रहा है:

//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; 
}]; 
संबंधित मुद्दे