如果不共享,iPhone FaceBook Connect将返回NULL电子邮件

时间:2011-08-17 11:34:54

标签: iphone facebook connect fbconnect

我已将facebook connect集成到我的iPhone Xcode 4项目中。这是iPhone FBconnec的代码。 FBconnect.h和FBSession.h已经包含在内。

- (void)viewDidLoad{ _session = [[FBSession sessionForApplication:@"APPKey" 
                                      secret:@"APPSecret" 
                                    delegate:self]retain];

FBLoginButton* fbButton = [[[FBLoginButton alloc] init] autorelease];
fbButton.frame = CGRectMake(228, 50, 85, 50);
[self.view addSubview:fbButton]; }

代码工作正常,但对于某些Facebook帐户运行FQL查询以从用户选择电子邮件。我得到NULL,如下所示

length of users Array: (
    {
    "contact_email" = "<null>";
    email = "<null>";
    "first_name" = Ali;
    "last_name" = Subhani;
    uid = 696377693;
}

如何获得扩展权限。我只是使用以下代码来运行查询。其中包含单词params,我认为它必须与FBRequest做一些事情。看看下面的代码

- (void)getFacebookName {

//==================== MAKING FACEBOOK REQUEST =============================
NSString* fql = [NSString stringWithFormat:
                 @"select uid,first_name,last_name,email from user where uid == %lld",
                 self._session.uid];
NSDictionary* params =
[NSDictionary dictionaryWithObject:fql
                            forKey:@"query"];

[[FBRequest requestWithDelegate:self]
 call:@"facebook.fql.query" params:params];}

我应该在哪里输入扩展权限,以便我可以收到用户电子邮件。

感谢。

1 个答案:

答案 0 :(得分:1)

我用

[appDelegate.facebook authorize:
  [NSArray arrayWithObjects:
    @"offline_access", @"email", @"user_checkins", @"publish_checkins", nil]
                       delegate:delegate 
                     localAppId:localAppId];

...授权和请求电子邮件访问(使用上面的@"email"权限密钥)。我不确定用户是否可以没有电子邮件地址,因为他们至少有一个登录。

然而,Facebook允许用户通过任意转发到其常规电子邮件帐户的@ facebook.com帐户对您进行模糊处理。