由于某种原因,Facebook停止以用户JSON的身份验证用户后返回用户电子邮件。Facebook Graph API停止发送用户电子邮件
我甚至从V3.6到V3.8升级FacebookSDK为iOS没有任何运气。直到几个星期前,它一切正常,但现在不再了。它只是电子邮件,所有其他属性,即DOB都会恢复正常。 Facebook不断更改他们的权限系统,但我不知道最近可能导致此问题的更改。任何指针将不胜感激。
顺便说一句,我试图与具有与之相关联的一个有效的电子邮件我自己的FB帐户进行身份验证,我最近没有任何更改隐私设置,无论是。
也尝试从我的Facebook隐私设置中删除应用程序并重新授权,但仍然没有运气。下面是代码:
[FBSession openActiveSessionWithReadPermissions:@[@"user_about_me", @"user_location", @"user_birthday", @"email"] allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
switch (status) {
case FBSessionStateOpen: {
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
NSLog(@"User Data: %@", user); //no email in the json
NSString *email = user[@"email"]; //obviously returns nil
//rest of the code
}];
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
}];
的Facebook应用程序的权限页面的屏幕截图,清楚地表明,我已经正确配置它:
这里是用户JSON我回来的API回调(我已经删除了我的个人信息)。
{
bio = "My Bio";
birthday = "01/01/1900";
"first_name" = FN;
gender = male;
id = 00000000;
"last_name" = LN;
link = "https://www.facebook.com/FBName";
locale = "en";
location = {
id = 11111111111111111;
name = "City Name";
};
name = "FN LN";
quotes = "";
timezone = "0";
"updated_time" = "2000-00-07T00:00:21+0000";
username = USERNAME;
verified = 1;
}
将服务器端的范围添加为电子邮件。请参阅https://developers.facebook.com/docs/reference/javascript/FB.login/ – Lavixu
谢谢。我正在使用Objective-C SDK,调用是权限,它们在我的代码的第一行正确设置。 –