Ios 如何使用Parse查询用户中的Facebook好友?
我使用Parse作为我的数据库。我想访问_Users类,查看我的Facebook好友是否正在使用该应用程序(在类_User中)。我刚读过,发现你不能再保存好友列表了 到目前为止,我的做法是: 我首先获取朋友的FB ID,然后在_User中查询。但是,我注意到FaceBookID保存为authData。除了创建一个将FaceBookId复制为字符串的新列之外,我如何使用FaceBookId查询我的_用户类Ios 如何使用Parse查询用户中的Facebook好友?,ios,facebook,parse-platform,Ios,Facebook,Parse Platform,我使用Parse作为我的数据库。我想访问_Users类,查看我的Facebook好友是否正在使用该应用程序(在类_User中)。我刚读过,发现你不能再保存好友列表了 到目前为止,我的做法是: 我首先获取朋友的FB ID,然后在_User中查询。但是,我注意到FaceBookID保存为authData。除了创建一个将FaceBookId复制为字符串的新列之外,我如何使用FaceBookId查询我的_用户类 // Send request to Facebook [[FBRequest re
// Send request to Facebook
[[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, id result, NSError *error) {
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
// result will contain an array with your user's friends in the "data" key
NSArray *friendObjects = [result objectForKey:@"data"];
NSMutableArray *friendIds = [NSMutableArray arrayWithCapacity:friendObjects.count];
// Create a list of friends' Facebook IDs
for (NSDictionary *friendObject in friendObjects) {
[friendIds addObject:[friendObject objectForKey:@"id"]];
}
self.fbfriendList = [NSMutableArray arrayWithArray:friendObjects];
PFQuery *friendQuery = [ParseUser query];
//PROBLEM is here where the fbId in my _User class is saved as authData
[friendQuery whereKey:@"fbID" containedIn:friendIds];
NSArray *friendUsers = [friendQuery findObjects];
self.fbfriendList = friendObjects;
}
}];
}];
默认情况下,Parse用户的Facebook ID是私有的,但您可以让其他用户访问它们 要实现这一点,您可以使用facebookapi获取用户的Facebook ID,并将其分配给Parse用户上的一个字段。然后,您可以在用户集合上构造一个查询,以获得Facebook ID位于用户朋友列表中的解析用户列表 当您使用Facebook登录时,您应该这样做:
// When your user logs in, immediately get and store its Facebook ID
[PFFacebookUtils logInWithPermissions:permissionsArray
block:^(PFUser *user, NSError *error) {
if (user) {
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
// Store the current user's Facebook ID on the user
[[PFUser currentUser] setObject:[result objectForKey:@"id"]
forKey:@"fbId"];
[[PFUser currentUser] saveInBackground];
}
}];
}
}];
然后,当您准备搜索用户的朋友时,您将发出另一个请求:
// Issue a Facebook Graph API request to get your user's friend list
[FBRequestConnection startForMyFriendsWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
// result will contain an array with your user's friends in the "data" key
NSArray *friendObjects = [result objectForKey:@"data"];
NSMutableArray *friendIds = [NSMutableArray arrayWithCapacity:friendObjects.count];
// Create a list of friends' Facebook IDs
for (NSDictionary *friendObject in friendObjects) {
[friendIds addObject:[friendObject objectForKey:@"id"]];
}
// Construct a PFUser query that will find friends whose facebook ids
// are contained in the current user's friend list.
PFQuery *friendQuery = [PFUser query];
[friendQuery whereKey:@"fbId" containedIn:friendIds];
NSArray *friendUsers = [friendQuery findObjects];
}
}];
致以最诚挚的问候,这是唯一的方法吗?@EricChuang是我知道的唯一方法。我在这方面取得了一些成功,但我想知道一些不同的事情。有没有办法在云代码上实现这一点?类似于afterSave on_User,它可以向应用程序上的所有用户发送推送消息,这些用户的好友与其好友加入的fbId匹配?@user717452是的,您可以通过云代码进行推送。不过,我不知道这道菜的配方。您应该在解析文档中搜索它的等价物。