2010-09-24 12 views

risposta

16

Provare a guardare più in profondità attraverso http://developers.facebook.com/docs/api. Ecco un link per userpic:

http://graph.facebook.com/000000000/picture

Dove 000000000 è un id utente registrato.

UPDATE da Michael Gaylord: È anche possibile aggiungere il tipo alla richiesta per ottenere immagini di dimensioni diverse. Quindi la tua richiesta sarà simile a: http://graph.facebook.com/00000000/picture?type=large per un'immagine grande. Altre opzioni sono piccole, normali e quadrate.

+1

È inoltre possibile aggiungere il tipo alla richiesta per ottenere immagini di dimensioni diverse. Quindi la tua richiesta sarà simile a questa: http://graph.facebook.com/00000000/picture?type=large per un'immagine grande. Altre opzioni sono piccole, normali e quadrate. –

4

Qui utilizzare questi metodi delegati per ottenere l'immagine dell'utente.

Quando si crea la sessione si otterrà il metodo delegato chiamato didLogin

- (void)session:(FBSession*)session didLogin:(FBUID)uid { 

    isLoginSuccessful = TRUE; 
    if(isLoginCanceled == FALSE) { 
     [self fetchUserDetails]; 
    } 
} 

- (void)sessionDidNotLogin:(FBSession*)session { 
    isLoginSuccessful = FALSE; 
    isLoginCanceled = TRUE; 
} 

- (void)sessionDidLogout:(FBSession*)session { 
    isLoginSuccessful = FALSE; 
    isLoginCanceled = TRUE; 
} 

- (void)fetchUserDetails { 

    NSString* fql = [NSString stringWithFormat: 
        @"select name,sex,pic from user where uid == %lld", _session.uid]; 

    NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"]; 
    [[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params]; 
} 

dopo aver chiamato il metodo requestWithDelegate si otterrà la risposta in questo metodo se riuscirà

- (void)request:(FBRequest*)request didLoad:(id)result { 
    if ([request.method isEqualToString:@"facebook.fql.query"]) { 
     NSArray* users = result; 
     NSDictionary* user = [users objectAtIndex:0]; 
       NSLog(@"User Details %@",user); 
     if(fbUserDetails == nil) { 
      self.fbUserDetails = [[NSDictionary alloc] initWithDictionary:user]; 
     } 
     if(isLoginSuccessful) { 
      NSString *fbUid = [NSString stringWithFormat:@"%lld",_session.uid]; 
      self.FBUserID = fbUid; 
      [_delegate loggedInFaceBookSuccessfully:fbUid]; 
     } 

    } 
} 

Avrete ottieni tutti i dettagli in formato JSON che puoi vedere in GDB

+0

thanx rahul its works ..... –

+0

Mostriamo la foto del profilo utente in UIWebView ma ne copre una parte e voglio che le immagini coprano l'intera area della visualizzazione web. cosa posso fare per risolverlo ... –

+0

Ho una soluzione ......... –

16

Penso che il modo più semplice sia questo:

NSString *fbuid = @"1234567890"; 
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?", fbuid]]; 
NSData *data = [NSData dataWithContentsOfURL:url]; 
UIImage *profilePic = [[[UIImage alloc] initWithData:data] autorelease];