2010-09-23 37 views
6

için api kullanarak e-posta adresi alınamıyor Bir kullanıcıdan e-posta adresini almaya çalışıyorum. O giriş yapar, ben e-posta erişmek için izin istemek ve o ok seçer. Ardından e-posta adresine erişmek için grafik API'sini facebook'tan kullanırım. { id = "https://graph.facebook.com/me"; } ben yanlış yaptığım:IOS için facebook sdk ve facebook


- (void) request:(FBRequest*)request didLoad:(id)result 
{ 
    if ([result isKindOfClass:[NSDictionary class]]) 
    { 
    NSString *email = [result objectForKey: @"email"]; 
    NSString *name = [result objectForKey: @"name"]; 
    NSString *facebookId = [result objectForKey: @"id"]; 
    //... 
    } 
} 

Bana sadece bu dizeyi verir:


- (void) fbDidLogin 
{ 
    btnLogin.isLoggedIn = TRUE; 
    [btnLogin updateImage]; 

    NSString *theURL = 
    [ [NSString stringWithFormat: 
    @"https://graph.facebook.com/me?access_token=%@", facebook.accessToken 
    ]stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding 
    ]; 

    NSLog(@"%@", theURL); 
    [facebook requestWithGraphPath: theURL andDelegate: self]; 
} 

... 

- (void)request:(FBRequest*)request didLoadRawResponse:(NSData*)data 
{ 
    NSString *response = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding]; 
    NSLog(@"%@", response); 
    [response release]; 
} 

Bu şimdiye bilgi almak nasıl?

cevap

4

Ah nevermind, işe yarıyor. URL yerine [facebook requestWithGraphPath: @"me" andDelegate: self]; numaralı telefondan @"me"'u kullanmak zorunda kaldım. requestWithGraphPath çağrıldıktan sonra:

NSArray *permissions = [[NSArray alloc] initWithObjects:@"user_likes",@"offline_access",@"read_stream",@"publish_stream",@"email",nil]; 

    [facebook requestWithGraphPath:@"me"andParams:params andDelegate:self]; 
    -(void)facebookLoginScreen:(NSDictionary *)result 
    { 
     NSLog(%@,[result objectForKey:@"email"]); 
    } 
+0

@kudor: – WaJiyaz

+0

Kodu benim soruma koyacağım! Bir “NSDictionary” aldınız ve değerlerini almanız gerekiyor. –

+0

Merhaba, denedim ama alınan yanıt "OAuthException": "Geçerli kullanıcı hakkındaki bilgileri sorgulamak için etkin bir erişim belirteci kullanılmalıdır" yani sanırım, istek didLoad'a ulaşmıyor. – WaJiyaz

9

ben cevap buldu @ "ben", tam olarak nasıl senin durumda e-posta gibi gerekli bilgileri ayıklamak mi? Kullanıcı adına ihtiyacım var.