Facebook v2与iOS SDK的集成

Facebook v2与iOS SDK的集成,ios,facebook,email,facebook-graph-api,facebook-graph-api-v2.0,Ios,Facebook,Email,Facebook Graph Api,Facebook Graph Api V2.0,我试图将Facebook SDK与v2 Api集成。 因为Facebook允许用户拒绝任何他不想分享的权限(主要是电子邮件)。 但根据我们的要求,我们需要用户的电子邮件将其注册到服务器(电子邮件是主键),并且电子邮件还用于以多种方式连接用户 我对此有些怀疑 我想知道是否可以根据需要发送电子邮件 正如Facebook升级指南中提到的,我们可以重新询问用户关于被拒绝的权限 下面是一个代码示例,它试图在重新询问时执行,但没有收到用户的电子邮件 [[FBSession activeSessio

我试图将Facebook SDK与v2 Api集成。 因为Facebook允许用户拒绝任何他不想分享的权限(主要是电子邮件)。 但根据我们的要求,我们需要用户的电子邮件将其注册到服务器(电子邮件是主键),并且电子邮件还用于以多种方式连接用户

我对此有些怀疑

  • 我想知道是否可以根据需要发送电子邮件
  • 正如Facebook升级指南中提到的,我们可以重新询问用户关于被拒绝的权限
  • 下面是一个代码示例,它试图在重新询问时执行,但没有收到用户的电子邮件

        [[FBSession activeSession] requestNewReadPermissions:@[@"user_birthday",@"email"] completionHandler:^(FBSession *session, NSError *error) {
              if (session.state == FBSessionStateOpen) {
                   [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> facebook_user, NSError *error) {
                          if (error) {
                                  [self fbRequestFailedWithError:error];
                          } else {
                                  [self processFacebookRequest:facebook_user];
                          }
                  }];
           }
    }
    
    [[FBSession activeSession]requestNewReadPermissions:@[@“用户生日”,“电子邮件”]完成处理程序:^(FBSession*会话,NSError*错误){
    if(session.state==FBSessionStateOpen){
    [FBRequestConnection StartFormwithCompletionHandler:^(FBRequestConnection*连接,id facebook\u用户,N错误*错误){
    如果(错误){
    [自请求失败:错误];
    }否则{
    [self-processFacebookRequest:facebook_用户];
    }
    }];
    }
    }
    
    您不能将电子邮件设置为所需权限,请参见此处:

    并非所有用户都会有可用的电子邮件地址,即使他们授予您的应用程序许可-通过手机号码注册Facebook的用户,其电子邮件地址会被退回或需要重新验证,也不会通过API获得可用的电子邮件

    您的代码看起来像是重新请求权限的代码,但也可能您已经被授予权限,但用户没有电子邮件地址