2014-11-14 91 views
2

我目前正在使用Facebook iOS SDK v3.16,它使用Graph API 2.0。我的电话如下所示:iOS SDK共同朋友Facebook API v2.0

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
         @"context.fields(mutual_friends)", @"fields", 
         nil 
         ]; 
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@", object[@"profile"][@"facebookId"]] 
          parameters:params 
          HTTPMethod:@"GET" 
         completionHandler:^(
              FBRequestConnection *connection, 
              id result, 
              NSError *error 
             ) { 
          cell.text3.text = [NSString stringWithFormat:@"Mutual Users: %lu", [result[@"context"][@"mutual_friends"][@"data"] count]]; 
         }]; 

object[@"profile"][@"facebookId"]是应用程序的作用域ID。

此次调用的预期行为是返回当前用户和请求用户之间的共同朋友数量。但事情是,共同的朋友数几乎总是0(因为某些原因,在某些情况下它是2,但实际上它应该更高)。

奇怪的部分是错误对象从来没有任何东西,结果对象只是零。我不太确定如何继续,因为没有结果被返回,但应该有,但它不会给我一个错误。

+0

您是否尝试过在图形浏览器完全相同的请求? – WizKid 2014-11-14 21:37:33

+0

是的,它给了我一个2500的错误 – BHendricks 2014-11-15 00:16:21

+0

所以我能够得到的图形浏览器api工作,但仍然得到的结果似乎很奇怪。如果用户A不是用户B的朋友,但是有10个共同的朋友,那么mutual_friends total_count字段不应该是10吗? – BHendricks 2014-11-15 19:19:15

回答

1

查找SWIFT 3.0
注意一个工作代码:提交审查Facebook的使用这项服务

FBSDKGraphRequest(graphPath: fbTokenID, parameters: ["fields": "context.fields(mutual_friends.limit(8))"]).start(completionHandler: { (connection, result, error) -> Void in 
      if (error == nil){ 

       print("//////Mutual friends") 
       print(result!) 

      } else { 
       print(error!.localizedDescription) 
      } 
     }) 

//你也可以通过添加“限制”

限制的共同的朋友结果
+0

我很欣赏答案,而我没有在这个工作现在,这不是我所问的。我想得到两个人之间共同朋友的总数,我认为这还不可能。 – BHendricks 2017-12-15 17:11:40

+0

@Beendricks,我想你可以通过使用上面的代码块来获得两个人之间的共同朋友的数量。我在我的项目中使用它,它的工作:) – 2017-12-17 09:44:16

+0

'context.fields(mutual_friends.limit(8))'让我相信你只有最多8个共同的朋友,是不是这样? – BHendricks 2017-12-17 19:25:31

0

在SWIFT 3.0

FBSDKGraphRequest(graphPath:"/me/taggable_friends", parameters:["fields":"user_id,first_name,last_name,name,picture.type(large)"],httpMethod: "GET") 
       //["fields": "id, name, first_name, last_name, picture.type(large), email"]) 
       .start(completionHandler: { (connection,result, error) -> Void in 
       if (error == nil) 
       { 
        print("Friends are: \(result)") 
        let jsonResult = result as! Dictionary<String,AnyObject> 
        self.dict = jsonResult["data"] as! [AnyObject] 

        for item in self.dict 
        { 
         // let id = item["id"] as! String 
         let name = item["name"] as! String 
         self.FBNameArray.append(name) 
         print("FBname: \(self.FBNameArray)") 
         let picture = item["picture"] as! NSDictionary 
         let parsePic = picture["data"] as! NSDictionary 
         let url = parsePic["url"] as! String 
         self.FBImageArray.append(url) 
         print("FBimage: \(self.FBImageArray)") 
         self.TblView.reloadData() 
        } 

       } 

      }) 
+0

我欣赏答案,虽然我不再工作,这不是我所问的。我想得到两个人之间共同朋友的总数,我认为这还不可能。 – BHendricks 2017-12-15 17:11:49