2013-03-06 68 views
1

我正在开发一个iPhone应用程序,我希望能够列出连接到我的应用程序和访问他们的电子邮件的用户的朋友,如果他们已经授予我的应用程序访问权限他们的电子邮件。iOS Facebook的SDK - 获取朋友的电子邮件

这是我使用打开Facebook的会议代码:

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI { 

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

    return [FBSession openActiveSessionWithReadPermissions:permissions 
             allowLoginUI:allowLoginUI 
           completionHandler:^(FBSession *session, 
                FBSessionState state, 
                NSError *error) { 
            [self sessionStateChanged:session 
                 state:state 
                 error:error]; 
           }]; 
} 

此外,在ViewController.m,我使用下面的代码列出的朋友,并得到他们的电子邮件:

NSString *query = 
     [NSString stringWithFormat:@"SELECT name, uid, pic_small, birthday,proxied_email, contact_email , email FROM user WHERE is_app_user = 1 and uid IN (SELECT uid2 FROM friend where uid1 = %@) order by concat(first_name,last_name) asc", my_fb_uid ]; 

     // Set up the query parameter 
     NSDictionary *queryParam = 
     [NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil]; 
     // Make the API request that uses FQL 

    [FBRequestConnection startWithGraphPath:@"/fql" 
         parameters:queryParam 
         HTTPMethod:@"GET" 
        completionHandler:^(FBRequestConnection *connection, 
             id result, 
             NSError *error) { 
         if (error) { 
          NSLog(@"Error: %@", [error localizedDescription]); 
         } else { 
          NSLog(@"Result: %@", result); 
         } 
        }]; 

问题是,即使是安装我的应用程序并授权访问其电子邮件的朋友,返回的电子邮件始终为空。

对此有何建议?

回答

19

documentation

Note: There is no way for apps to obtain email addresses for a user's friends. 

email权限只对LOGGED_IN用户

4

你应该做的是,当用户授权访问他们的Facebook帐户,您应该存储他们的FB用户ID 。然后,当试图找到用户的朋友时,请求用户的FB朋友(http://developers.facebook.com/docs/reference/ios/3.2/class/FBRequest#requestForMyFriends)的请求并比较返回的ID。这是做你想做的事的正确方法。

+0

为什么要投票?有很多这样的例子,包括Parse.com,它在AnyPic示例应用程序中实现了相同的策略。如果我错过了一些东西,我很想知道。 – 2013-03-07 02:58:14

相关问题