Ios 如何使用Facebook sdk获取好友列表和电子邮件
我在视图控制器中实现Facebook SDK时遇到问题,希望使用Facebook获取好友列表和电子邮件。我写道:Ios 如何使用Facebook sdk获取好友列表和电子邮件,ios,objective-c,facebook,facebook-graph-api,Ios,Objective C,Facebook,Facebook Graph Api,我在视图控制器中实现Facebook SDK时遇到问题,希望使用Facebook获取好友列表和电子邮件。我写道: FBLoginView *loginView = [[FBLoginView alloc] initWithReadPermissions:@[@"public_profile", @"email", @"user_friends"]]; loginView.delegate = self; 然后使用FBLoginViewDelegate的协议方法: - (void)loginV
FBLoginView *loginView = [[FBLoginView alloc] initWithReadPermissions:@[@"public_profile", @"email", @"user_friends"]];
loginView.delegate = self;
然后使用FBLoginViewDelegate的协议方法:
- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
user:(id<FBGraphUser>)user
{
self.profilePictureView.profileID = user.id;
self.nameLabel.text = user.name;
NSLog(@"%@", user);
NSLog(@"%@", [user objectForKey:@"email"]);
}
希望这对你有帮助 您可以在
viewDidLoad
[FBRequestConnection startWithGraphPath:@"me/taggable_friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
}];
还有一些
编辑
上面的答案只提到了friendlist而不是电子邮件(因为上面的答案已经很清楚了),现在你想要什么friendlist
朋友列表(friend list V 2.2)-指由某人创建或自动为某人生成的一组朋友的对象(如“亲密朋友”或“熟人”列表)
从v2.0开始,您只能通过/me/taggable_-friends
(通过结果
)获取所有好友对于使用Facebook SDK 3.0
的好友,您可以这样做
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
}
}];
FBRequest*friendsRequest=[FBRequestFormyFriends];
[FriendsRequestStartWithCompletionHandler:^(FBRequestConnection*连接,
NSDictionary*结果,
N错误*错误){
NSArray*friends=[result objectForKey:@“data”];
NSLog(@“找到:%i个朋友”,朋友数);
用于(NSDictionary*朋友中的朋友){
NSLog(@“我有一个名为%@且id为%@”、friend.name、friend.id的朋友);
}
}];
除您的电子邮件外,您无法访问任何用户的电子邮件。因为FBGraphUser没有email@属性,我们无法访问名称(点语法)之类的信息,但是NSDictionary仍然有email kv对,我们可以像访问普通NSDictionary一样访问它。 使用此方法,您可以访问电子邮件
if (FBSession.activeSession.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (!error) {
self.nameLabel.text = user.name;
self.emailLabel.text = [user objectForKey:@"email"];
}
}];
}
if(FBSession.activeSession.isOpen){
[[FBRequest requestForMe]startWithCompletionHandler:^(FBRequestConnection*连接,NSDictionary*用户,NSError*错误){
如果(!错误){
self.namelab.text=user.name;
self.emailLabel.text=[user objectForKey:@“email”];
}
}];
}
对不起,您不能
阅读Facebook
当用户登录时,您只能获取电子邮件
,但无法获取用户的好友电子邮件
我不是很确定,但也许你可以使用“friendsusername”@facebook.com(“facebook电子邮件”)
我发现了这个
此人必须激活@facebook选项。这将只返回同样使用您正在使用的应用程序的朋友。另外,你无法获得他们的电子邮件地址……此外,这仅用于标记朋友,你不允许将其用于任何其他用途。请问我如何在4.7版本中使用它?它的等价性是什么?这是不可能的,而且从来都不是@英格丽的回答是正确的。@Tobi我从这里读到的,没有人说你可以收到朋友的电子邮件@托比,我不需要朋友的电子邮件。我只需要得到我的电子邮件和我的朋友名单。但是z不能得到这个信息。我不明白为什么…这是一个误会。你知道你只能得到使用相同应用程序的朋友吗?如果没有,你什么也看不到。那不行。Friends权限已被v2.0 Graph API取消,即使是v1.0版的Friends,也无法获取好友的电子邮件地址。no,但他需要获取用户emailNo,您无法获取“Facebook电子邮件”
if (FBSession.activeSession.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (!error) {
self.nameLabel.text = user.name;
self.emailLabel.text = [user objectForKey:@"email"];
}
}];
}