Próbuję uzyskać dostęp do niektórych informacji o użytkowniku, w tym wiadomości e-mail. Do tego celu używam Graph API zadzwonić ta metoda:Facebook iOS SDK nie zwraca użytkownika e-mail
[facebook requestWithGraphPath:@"me" andDelegate:self];
Zwraca informację o użytkowniku, bez informacji e-mail (dzień urodzin jest również brakuje). Ustawiłem wszystkie uprawnienia i przetestowałem więcej niż jedno konto (z wiadomością e-mail i urodzin jako informacją publiczną) i zaakceptowałem wszystkie żądania okna dialogowego.
Oto moja startowych:
if(!facebook) {
facebook = [[Facebook alloc] initWithAppId:[self _APP_KEY] andDelegate:self];
NSArray *array = [NSArray arrayWithObjects: @"email", @"user_birthday", @"publish_stream", @"offline_access", nil];
[self setPermissions:array];
}
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:permissions];
}
else {
[self getUserInfo];
}
Identyfikator logowania zwrotna:
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
[self getUserInfo];
}
Sposób getUserInfo:
- (void) getUserInfo {
[facebook requestWithGraphPath:@"me" andDelegate:self];
}
Żądanie oddzwonienia:
- (void)request:(FBRequest *)request didLoad:(id)result {
if ([result isKindOfClass:[NSDictionary class]]) {
NSDictionary* json = result;
NSLog(@"-> %@", json);
}
}
Wynik jest następujący:
-> {
"first_name" = EDITED (my name);
gender = male;
hometown = {
id = 111072692249998;
name = "Porto Alegre";
};
id = 653099452;
languages = (
{
id = 104034306299811;
name = "Brazilian Portuguese";
},
{
id = 106059522759137;
name = English;
}
);
"last_name" = EDITED (my last name);
link = EDITED (my profile);
locale = "en_US";
location = {
id = 112047398814697;
name = "S\U00e3o Paulo, Brazil";
};
name = EDITED (my name);
timezone = "-3";
"updated_time" = "2012-04-25T13:36:51+0000";
verified = 1;
}
Jak widać, nie ma informacji na temat e-mail użytkownika. Czy brakuje mi jakiegoś kroku? Wszelkie idei?
Dzięki z góry
żadna z tych odpowiedzi działa? czy oni? Musisz wybrać poprawną odpowiedź tutaj, aby zapewnić korzyści innym użytkownikom. – Dobler