Не удается получить адрес электронной почты, используя Facebook SDK для IOS и график API для Facebook - PullRequest
6 голосов
/ 23 сентября 2010

Я пытаюсь получить адрес электронной почты от пользователя.Он входит в систему, я спрашиваю разрешение на доступ к электронной почте, и он выбирает нормально.Затем я использую API графа из Facebook для доступа к адресу электронной почты.


- (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];
}

Вот как я получаю информацию:


- (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"];
    //...
  }
}

Это дает мне только эту строку: { id = "https://graph.facebook.com/me"; }Что я сделал не так?

Ответы [ 2 ]

9 голосов
/ 05 июля 2012

Я нашел ответ:

 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"]);
   }
4 голосов
/ 23 сентября 2010

Ах, неважно, это работает. Мне пришлось использовать @"me" в [facebook requestWithGraphPath: @"me" andDelegate: self]; вместо URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...