1

Не найдено ни одного электронного письма с запросом Facebook. Как мне это получить? Мне это нужно для моего входа/процесса регистрацииЗапрос на Facebook не возвращается email

- (void)request:(FBRequest *)request didLoad:(id)result{ 

    NSLog(@"FACEBOOK RESULT %@ ", result); 

} 

Это первоначальный запрос:

[facebook requestWithGraphPath:@"me" andDelegate:self]; 
+0

«FBRequest» может быть для многих типов запросов в Facebook, поэтому в зависимости от того, что ваш фактический запрос будет определять, будет ваш объект «result». Вам нужно будет предоставить гораздо больше информации о фактическом запросе, чтобы определить, почему вы не получаете информацию, которую вы ожидаете. – Joe

+0

Обновлено. Пожалуйста, передумайте вопрос и снимите -1, если вы были благодарны! – GangstaGraham

+0

У вас есть разрешение «электронной почты» при первом подключении пользователя к FB? – tom

ответ

2

Свойство email не может быть получено без запроса дополнительного разрешения для его получения, см https://developers.facebook.com/docs/reference/login/email-permissions/.

Мое приложение использует следующий код, чтобы сначала проверить, является ли сеанс Facebook (self.facebook является Facebook объект инициализируется initWithAppId):

if (![self.facebook isSessionValid]) { 

    NSArray* permissions = [NSArray arrayWithObjects: @"email", nil]; 

    [self.facebook authorize:permissions]; 

    } else { 
    // Since we have a valid session we can get the userinfo 
    [self getFacebookUserInfo]; 
    } 

Ваше приложение запрос будет указать «С помощью этого приложения требуется: * Ваш основная информация * Ваш адрес электронной почты «Если пользователь разрешает вам получать эту информацию, ваш возвращенный токен будет иметь биты, которые позволят вам получить адрес электронной почты, и будут работать следующие:

-(void)getFacebookUserInfo { 
    [self.facebook requestWithGraphPath:@"me" andDelegate:self]; 
} 

Предположим, что у вас есть метод -(void)request:(FBRequest *)request didLoad:(id)result (который кажется, что он есть).

Обратите внимание, что полный поток SSO (Single Sign On) здесь не указан здесь, вам нужно будет пройти через https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/#implementsso в деталях.

Обратите также внимание, что вы можете использовать устаревший API для iOS 6, вы должны посмотреть на https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-2.0-to-3.1/, прежде чем идти дальше.

1

С параметрами 2.4 api используются параметры, чтобы указать, какие элементы пользовательских данных вы заинтересованы в получении. E-mail:

FBSDKGraphRequestConnection * connection2 = [[FBSDKGraphRequestConnection alloc] init];

FBSDKGraphRequest *selfRequest = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me?" 
                    parameters:@{@"fields":@"id,name,first_name,last_name,verified,email"}]; 
[connection2 addRequest:selfRequest 
     completionHandler:^(FBSDKGraphRequestConnection *innerConnection, NSDictionary *result, NSError *error) { 
      if (error) { 
       NSLog(@"%@", error); 
       return; 
      } 

      if (result) { 
       // get user data 
       NSMutableDictionary *facebookUserData = [NSMutableDictionary dictionaryWithDictionary:result]; 
       NSLog(@"result=%@", result); 

ОДНАКО, они, видимо, перепутали большое время, как электронная почта в настоящее время не возвращаются для проявителей, и в настоящее время приложения развития. Кстати, НЕВОЗМОЖНО отправлять ошибки в приложениях в процессе разработки, поскольку они требуют одобренных приложений в системе обратной связи ...

Интересно, как они думают, что мы собираемся убедиться, что что-то работает ДО ПРЕДОСТАВЛЕНИЯ приложения для одобрение или логику запроса идентификатора App Store для приложения, которое не может быть одобрено ДОПОЛНИТЕЛЬНАЯ интеграция Facebook может быть протестирована в полной мере.

Кроме того, кто гений в Facebook, который решает разорвать рабочий код один день из другого?

+0

Эй, я думаю, я просто понял, откуда мои проблемы. Вы уверены, что если вы используете тестовую версию, вы не сможете получить электронное письмо от пользователя (у меня пока нет версии, ни в Play Маркете, ни в iTunes). –

+0

Они исправили его вскоре после того, как я отправил свой ответ.Теперь он работает, если вы укажете ожидаемые значения, например. "Эл. адрес". –

+0

Хорошо, но когда я выполняю запрос, JSON, который они возвращают, не содержит никакой электронной почты, даже если я просил разрешения на это, но это уже не проблема, я использовал REST api напрямую и получил все, что мне было нужно, я просто немного разочаровывающе не использовать SDK –

 Смежные вопросы

  • Нет связанных вопросов^_^