1

Facebook 请求不会输出任何电子邮件。我怎么得到这个?我的登录/注册过程需要它

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

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

}

这是最初的请求:

[facebook requestWithGraphPath:@"me" andDelegate:self];
4

2 回答 2

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(单点登录)的完整流程,您需要通过https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/#implementsso细节。

另请注意,您可能正在为 iOS 6 使用已弃用的 API,在进一步操作之前,您应该查看https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-2.0-to-3.1/ 。

于 2013-02-21T02:48:06.237 回答
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);

然而,他们显然搞砸了很多时间,因为电子邮件目前没有被退回给开发人员,并且目前正在开发应用程序中。顺便说一句,在开发中的应用程序上提交错误是不可能的,因为它们需要在反馈系统中获得批准的应用程序......

我想知道他们认为我们将如何确保在提交应用程序以供批准之前某些东西可以工作,或者在可以测试 Facebook 集成之前要求无法批准的应用程序的 App Store id 的逻辑是什么最充分的。

此外,谁是 Facebook 的天才,他决定一天又一天地破坏工作代码?

于 2015-07-17T10:01:22.497 回答