如何知道用户的哪些Facebook好友安装了我的应用程序?

时间:2012-04-06 11:52:28

标签: ios facebook

是否可以实施以下内容?我想创建一个iOS应用程序,允许用户在他们的Facebook列表中查看已经拥有此应用程序的所有Facebook好友。可以通过Facebook ConnectGraph API或其他方式实现吗?

4 个答案:

答案 0 :(得分:4)

是的,这是可能的。

  1. 您需要维护自己的数据库,其中包含已安装该应用程序的人员。
  2. 当用户安装应用程序时,他们通过其中一个API连接到Facebook,获取用户ID,并使用用户安装应用程序的标志将其提交到数据库。
  3. 然后,您通过其中一个API向Facebook询问该用户的朋友ID列表,然后询问您的数据库是否有任何这些ID设置了关联的标志。

答案 1 :(得分:4)

如果您已关注Facebook教程 iOS Tutorial

您应该可以访问AppDelegate.m文件中的“facebook”对象。该“facebook”对象已经在您的特定应用程序ID中注册。 然后,您可以使用它来查询已安装该应用程序的当前用户的朋友。

以下是检索朋友数据的Facebook查询:

NSString *fql = [NSString stringWithFormat:@"Select name, uid, pic_small from user where is_app_user = 1 and uid in (select uid2 from friend where uid1 = %@) order by concat(first_name,last_name) asc", _replace_this_with_the_fb_id_of_the_current_user_ ];

答案 2 :(得分:0)

是的,您可以使用GraphAPI使用新的Facebook SDK 3.5及更高版本(2013年6月)。 您可以稍后使用deviceFilteredFriends可变数组...

// The Array for the filtered friends
NSMutableArray *installedFilteredFriends = [[NSMutableArray alloc] init];

// Request the list of friends of the logged in user (me)
[[FBRequest requestForGraphPath:@"me/friends?fields=installed"]
 startWithCompletionHandler:
 ^(FBRequestConnection *connection,
   NSDictionary *result,
   NSError *error) {

     // If we get a result with no errors...
     if (!error && result)
     {
         // here is the result in a dictionary under a key "data"
         NSArray *allFriendsResultData = [result objectForKey:@"data"];

         if ([allFriendsResultData count] > 0)
         {
            // Loop through the friends
            for (NSDictionary *friendObject in allFriendsResultData) {
               // Check if installed data available
               if ([friendObject objectForKey:@"installed"]) {

                  [installedFilteredFriends addObject: [friendObject objectForKey:@"id"]];
                     break;
                }
             }
          }
      }
 }];

答案 3 :(得分:0)

使用Facebook登录,然后询问用户的朋友。您将只获得安装了请求应用程序的用户(用于返回所有带有“已安装”标志的朋友)