由於某種原因,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,調用是權限,它們在我的代碼的第一行正確設置。 –