我想要訪問一些用戶的信息,包括電子郵件。爲此,我使用圖形API來調用這個方法:Facebook的iOS SDK沒有返回用戶的電子郵件
[facebook requestWithGraphPath:@"me" andDelegate:self];
它返回的用戶信息,而電子郵件信息(生日也丟失)。我設置了所有權限並使用多個帳戶(其中包含電子郵件和生日作爲公共信息)進行測試,並接受了所有對話的請求。
這裏是我的init:
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];
}
登錄回調:
- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
[self getUserInfo];
}
的getUserInfo方法:
- (void) getUserInfo {
[facebook requestWithGraphPath:@"me" andDelegate:self];
}
請求回調:
- (void)request:(FBRequest *)request didLoad:(id)result {
if ([result isKindOfClass:[NSDictionary class]]) {
NSDictionary* json = result;
NSLog(@"-> %@", json);
}
}
結果如下:
-> {
"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;
}
正如你所看到的,沒有關於該用戶的電子郵件信息。我錯過了一些步驟?任何意識?
在此先感謝
以上答案都不對工作的所有Facebook賬戶?或者他們?爲了其他用戶的利益,您應該選擇正確的答案。 – Dobler 2012-08-11 04:36:10