如何检索 Facebook 好友列表并将其保存以进行解析?

Posted

技术标签:

【中文标题】如何检索 Facebook 好友列表并将其保存以进行解析?【英文标题】:How to retrieve Facebook friendlist and save it to parse? 【发布时间】:2014-11-02 13:55:02 【问题描述】:

我正在制作一个利用用户 Facebook 好友列表的应用程序。我的解析后端上有一个名为 fbFriendsList 的数组类型列。环顾四周,到目前为止,我有这个:

//my permission array
NSArray *permissionsArray = @[ @"user_about_me",@"email", @"user_friends"];
//My fb request for friends after verifying that user is logging in the first time    
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
                        if (!error) 

                            NSArray *friendObjects = [result objectForKey:@"data"];
                            //fbFriendIds is a Mutable array i have declared
                            fbFriendIds = [NSMutableArray arrayWithCapacity:friendObjects.count];
                            // Create a list of friends' Facebook IDs
                            for (NSDictionary *friendObject in friendObjects) 
                                [fbFriendIds addObject:[friendObject objectForKey:@"id"]];
                            

                        
                    ];

通过这样做,我没有收到列表中的任何朋友。所以我尝试了这个:

FBRequest* friendsRequest = [FBRequest requestForMyFriends];
                [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
                                                              NSDictionary* result,
                                                              NSError *error) 
                    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);
                    
                ];

但我仍然没有得到朋友。稍后在一个函数中,我将数组保存到PFUser,如下所示

user[@"fbFriendsList"] = friends;


 [user saveInBackground];

但这会返回Found: 0。为什么这些方法不检索朋友列表?我该如何做并将其保存到我的解析后端?

【问题讨论】:

【参考方案1】:

自 2014 年 4 月起,您只能获得那些也授权您的应用的用户,请查看更新日志:https://developers.facebook.com/docs/apps/changelog

未授权您的应用的用户不可能知道您是否存储了他们的数据,因此考虑隐私是有道理的。

如今,结交所有朋友的唯一方法是使用invitable_friends 邀请用户加入您的应用程序并使用taggable_friends 标记用户。但在你的情况下,没有办法获得所有这些。

【讨论】:

但我还有另一个应用程序代码。它是几个月前构建的,使用相同的方法仍然可以正常工作。 阅读更新日志。较旧的应用程序(在 2014 年 4 月底之前创建)仍然可以使用 v1.0,它会在 2015 年 4 月之前返回所有朋友。 好吧,你能解释一下这部分吗?“邀请与请求具有相同的行为,并且会将收件人定向到以下位置之一:您在 Facebook Canvas 上的应用。您在 iosandroid 上的本机应用(如果已安装) . Apple App Store 或 Google Play,如果未安装。”?我可以使用这些东西在 iOS 应用上添加朋友,对吧?即使我没有使用 fb 画布 不,这是您需要为外部网站/应用阅读的内容:developers.facebook.com/docs/apps/faq#invite_to_app 你不想邀请朋友,你想存储朋友。你不能再这样做了。

以上是关于如何检索 Facebook 好友列表并将其保存以进行解析?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode FacebookSDK 检索好友列表

如何检索facebook用户™s好友列表

如何在应用程序获得批准之前测试 Facebook 集成(检索用户的好友列表)?

检索 Facebook 好友列表

通过 Facebook iOS SDK 检索 Facebook 好友列表

检索 Facebook 好友并邀请他们加入我的 iOS 应用