2014-11-14 137 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