2012-12-24 11 views
10

में SLRequest का उपयोग कर रहा ios 6.0 में फेसबुक एकीकृत रूप में वर्णितलायें फेसबुक मित्र सूची ios 6.0

How to integrate Facebook in iOS 6 using SLRequest?

लेकिन मैं फेसबुक मित्र सूची SLRequest का उपयोग कर लाने के लिए सक्षम नहीं हूँ। क्या कोई यह जान सकता है कि यह कैसे करें? मैं अपने खेल में "दोस्तों के साथ खेलें" को लागू करना चाहता हूं।

धन्यवाद

उत्तर

11

मुझे लगा कि यह कैसे काम करना चाहिए।

नीचे दिया गया कोड मेरे लिए ठीक काम कर रहा है।

NSArray *accounts = [accountStore 
           accountsWithAccountType:facebookAccountType]; 
      ACAccount *facebookAccount = [accounts lastObject]; 
      NSString *acessToken = [NSString stringWithFormat:@"%@",facebookAccount.credential.oauthToken]; 
      NSDictionary *parameters = @{@"access_token": acessToken}; 
      NSURL *feedURL = [NSURL URLWithString:@"https://graph.facebook.com/me/friends"]; 
      SLRequest *feedRequest = [SLRequest 
            requestForServiceType:SLServiceTypeFacebook 
            requestMethod:SLRequestMethodGET 
            URL:feedURL 
            parameters:parameters]; 
      feedRequest.account = facebookAccount; 
      [feedRequest performRequestWithHandler:^(NSData *responseData, 
                NSHTTPURLResponse *urlResponse, NSError *error) 
      { 
       NSLog(@"%@",[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]); 
      }]; 
     } 
     else 
     { 
      // Handle Failure 
     } 
+3

मैंने कोशिश की ऊपर मैं अच्छे दोस्त नहीं अपनी detalis डेटा शब्दकोश सरणी खाली है की केवल गिनती हो रही है? डेटा = ( ); सारांश = { "कुल_count" = 690; }; इस बारे में कोई विचार? –

+0

उपरोक्त टिप्पणी के लिए कोई भी विचार एक ही समस्या हो रहा है? – python

4
-(void)getFacebookFriendsList 
{ 
    if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) 
    { 
     ACAccountStore *store = [[ACAccountStore alloc] init]; 

     ACAccountType *facebookTypeAccount = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook]; 
     //Replace with your Facebook.com app ID 
     NSDictionary *options = @{ACFacebookAppIdKey:kFacebookAppID, ACFacebookPermissionsKey:@[@"email", @"read_friendlists"], 
            ACFacebookAudienceKey:ACFacebookAudienceFriends}; 

     [store requestAccessToAccountsWithType:facebookTypeAccount 
             options:options 
            completion:^(BOOL granted, NSError *error){ 

             if(granted) 
             { 
              NSArray *accounts = [store accountsWithAccountType:facebookTypeAccount]; 
              ACAccount *facebookAccount = [accounts lastObject]; 

              NSURL *meurl = [NSURL URLWithString:@"https://graph.facebook.com/me"]; 
              SLRequest *merequest = [SLRequest requestForServiceType:SLServiceTypeFacebook 
                         requestMethod:SLRequestMethodGET 
                           URL:meurl 
                         parameters:nil]; 
              merequest.account = facebookAccount; 

              NSURL *requestURL = [NSURL URLWithString:@"https://graph.facebook.com/me/friends"]; 

              SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeFacebook 
                        requestMethod:SLRequestMethodGET 
                           URL:requestURL parameters:@{@"fields":@"id, name, email, picture, first_name, last_name, gender, installed"}]; 
              request.account = facebookAccount; 
              [request performRequestWithHandler:^(NSData *data, 
                       NSHTTPURLResponse *response, 
                       NSError *error) { 
               if(!error) 
               { 
                NSDictionary *list =[NSJSONSerialization JSONObjectWithData:data 
                             options:kNilOptions 
                              error:&error]; 
                if([list objectForKey:@"error"] != nil) 
                { 
                 // if error occured e.g. Invalid Auth etc. 
                } 
                else 
                { 
                 [self.arrayFriendsList removeAllObjects]; 

                 NSArray *dictFbFriend = [list objectForKey:@"data"]; 

                 for (NSDictionary *dict in dictFbFriend) 
                 { 
                  NSDictionary *pictureDataDict = [[dict objectForKey:@"picture"] objectForKey:@"data"]; 

                  Contacts *objContact = [[Contacts alloc] initWithName:[dict objectForKey:@"name"] 
                             andEmail:nil 
                            andFirstName:[dict objectForKey:@"first_name"] 
                             andLastName:[dict objectForKey:@"last_name"] 
                             andGender:[dict objectForKey:@"gender"] andPhotoPath:[pictureDataDict objectForKey:@"url"] 
                            andIsInstalled:[dict objectForKey:@"installed"] ? [[dict objectForKey:@"installed"] boolValue] : NO 
                            andFacebookId:[dict objectForKey:@"id"] 
                        ]; 

                  [self.arrayFriendsList addObject:objContact]; 
                  objContact = nil; 
                 } 

                 NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES]; 
                 NSArray *descriptors=[NSArray arrayWithObject: descriptor]; 
                 self.arrayFriendsList = (NSMutableArray *)[self.arrayFriendsList sortedArrayUsingDescriptors:descriptors]; 

                } 
               } 
               else 
               { 
                NSLog(@"Error%@", error); 

                //             [progressHUD hide:YES]; 
               } 

               dispatch_async(dispatch_get_main_queue(), ^{ 
                [progressHUD hide:YES]; 
                [self.tblFriendsList reloadData]; 
               }); 
              }]; 
             } 
             else 
             { 
              NSLog(@"Grant Error:%@", error); 

              [progressHUD hide:YES]; 

              UIAlertView *alertView = [[UIAlertView alloc] 
                     initWithTitle:@"Error" 
                     message:@"You need to set up Facebook account on the Settings App." 
                     delegate:self 
                     cancelButtonTitle:@"OK" 
                     otherButtonTitles:nil]; 
              [alertView show]; 
             } 
            }]; 
    } 
    else 
    { 
     [progressHUD hide:YES]; 

     UIAlertView *alertView = [[UIAlertView alloc] 
            initWithTitle:@"Error" 
            message:@"You need to set up Facebook account on the Settings App." 
            delegate:self 
            cancelButtonTitle:@"OK" 
            otherButtonTitles:nil]; 
     [alertView show]; 
    } 
} 
+0

बहुत बहुत धन्यवाद, मुझे बहुत मदद की! – Alex

+0

यह मेरे लिए भी काम करता है। कुंजी '@" read_friendlists को '' ACFacebookPermissionsKey' सरणी में जोड़ रही थी। –

संबंधित मुद्दे