1

没有电子邮件从Facebook的要求输出。我如何得到这个?我需要为我登录/注册过程Facebook的请求不回电子邮件

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

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

} 

这是初始请求:

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

一个'FBRequest'可能是许多类型的请求给Facebook的,所以要根据您的实际要求是什么,将决定是你'result'对象将包含。您需要提供有关实际请求的更多详细信息,以确定您未收到预期信息的原因。 – Joe 2013-02-20 23:48:56

+0

已更新。请重新考虑这个问题,如果那是你的感谢,请摘下-1。 – GangstaGraham 2013-02-21 01:18:32

+0

当您首次将用户连接到FB时,您是否拥有'email'权限? – tom 2013-02-21 02:48:09

回答

2

email财产不能没有请求额外的许可来获得它来获得,见https://developers.facebook.com/docs/reference/login/email-permissions/

我的应用程序使用下面的代码首先检查了Facebook会话是否有效(self.facebookinitWithAppId初始化的Facebook对象):

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(单点登录)流程,您需要详细了解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,参数,以便指定要哪些用户数据项对收到使用。 例如:

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); 

然而,他们显然搞砸了很大的时间,因为电子邮件并不是目前正在开发应用程序返回对于开发者来说,目前。 顺便说一句,这是不可能的应用程序提交Bug的发展,因为它们需要在反馈系统已批准的应用...

我不知道他们怎么想,我们要确保工作的东西之前提交应用程序进行批准,还是要求一个应用程序的App Store ID无法批准的逻辑是什么,在Facebook整合之前可以进行最充分的测试。

而且,谁是Facebook的谁决定打破从另一个工作代码有一天,天才?

+0

嘿,我想我只是明白我的问题来自哪里。您确定如果您使用测试版本,则无法检索用户的电子邮件(我没有提交任何版本,在Play Store和iTunes中都没有)。 – 2015-08-23 21:55:15

+0

他们在我发布我的回复后不久修复了它。现在它可以工作,只要您指定期望的值,例如“电子邮件”。 – 2015-08-24 09:35:37

+0

好的,但当我做了我的请求,他们返回的JSON不包含任何电子邮件,即使我问了它的许可,但这不再是一个问题了,我直接使用了REST api并获得了我需要的所有内容,发现它有点令人失望,不使用SDK – 2015-08-24 10:45:00