我试图将Facebook SDK与v2 Api集成。 由于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];
}
}];
}
}
答案 0 :(得分:1)
您无法使电子邮件成为必需的权限,请参阅此处:https://developers.facebook.com/docs/apps/upgrading#v2_0_login_optional_permissions
并非所有用户都有可用的电子邮件地址,即使他们授予您的应用权限 - 通过手机号码注册Facebook的用户,其电子邮件地址被退回或需要重新验证的用户将无法通过API获得电子邮件< / p>
您的代码看起来像重新请求权限的代码,但您也可能已被授予权限,但用户没有电子邮件地址