0

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

我对此有些怀疑。

  1. 我想知道根据需要发送电子邮件。
  2. 正如 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];
                      }
              }];
       }
}
4

1 回答 1

1

您不能使电子邮件成为必需的权限,请参见此处:https ://developers.facebook.com/docs/apps/upgrading#v2_0_login_optional_permissions

并非所有用户都有可用的电子邮件地址,即使他们授予您的应用权限 - 通过手机号码注册 Facebook、电子邮件地址被退回或需要重新验证的用户将无法通过 API 获得可用的电子邮件地址

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

于 2014-07-18T17:25:28.280 回答