2015-07-29 2 views
1

Я использую следующий код, чтобы получить оценку игры моего друга в facebook.FBSDKGraphRequest Response Issue - Не получить оценки

-(void)GetFriendScore 
{ 
    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
            [NSString stringWithFormat:@"%@", [FBSDKAccessToken currentAccessToken]], @"access_token", 
            nil]; 

    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
            initWithGraphPath:@"/me/scores" 
            parameters:params 
            HTTPMethod:@"GET"]; 
    [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, 
              id result, 
              NSError *error) { 

    }]; 
} 

и получил ответ в следующем формиата

{ 
data =  (
      { 
      user =    { 
       id = XYZ; 
       name = "XYZ"; 
      }; 
      } 
      ); 

}

, но это не ожидается ответ. мой ожидается формиат следующий

{ 
data =  (

      { 
      application =    { 
       category = Games; 
       id = XYZ; 
       link = "https://www.facebook.com/games/?app_id=XYZ"; 
       name = "XYZ"; 
      }; 
      score = 2907; 
      user =    { 
       id = XYZ; 
       name = "XYZ"; 
      }; 
      } 
      ); 

}

может кто-нибудь пожалуйста, помогите мне, чтобы получить правильный ответ?

ответ

0

Похоже, вы используете Graph API v2.4. При этом вам нужно будет указать каждое поле, которое вы хотите вернуть. Смотрите мой ответ на аналогичный вопрос здесь:

Вам нужно запросить /{app_id}/scores?fields=user,application,score вместо /me/scores?fields=user,application,score Я думаю, если вы хотите, чтобы увидеть оценки его друга

Смотрите

В качестве альтернативы,

/me?fields=scores{user,application,score},friends{scores{user,application,score}‌​} 

должны работать, а

+0

, где мне нужно указать поля ,не могли бы вы мне помочь. –

+0

Один вопрос по-прежнему существует, это не в состоянии найти друзей score.Getting только пользовательский счет. –

0

решаемые с помощью следующего кода.

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] 
           initWithGraphPath:@"/me/scores?fields=user,application,score" 
           parameters:params 
           HTTPMethod:@"GET"]; 
+0

Один вопрос по-прежнему существует, это неспособно найти друзей score.Getting только пользовательский счет. –

+0

Вам нужно запросить '/ {app_id}/score? Fields = user, application, score' вместо'/me/scores? Fields = user, application, score' Я думаю: https://developers.facebook.com/ docs/graph-api/reference/v2.4/app/scores в качестве альтернативы, 'me? fields = score {user, application, score}, friends {score {user, application, score}}' должно работать также – Tobi

+1

спасибо решена –

0

Как мы можем сделать то же самое в android.i же проблема в андроида я использую следующий код

request = new Request(Session.getActiveSession(), "/ "+"FB_ID"+"/scores?fields=user,application,score", param , HttpMethod.GET); 
if(request!=null) 
{ 
    request.setCallback(new Request.Callback() 
    { 
     public void onCompleted(Response response) 
     { 
        if(response!=null) 
        { 
         GraphObject graphObject = response.getGraphObject(); 
         if(graphObject==null) 
         { 
          //getting graphObject NULL 
         } 

        } 
     } 
    } 
} 

, как решить эту проблему

0
param.putString("fields", "user,application,score"); 
request = new Request(Session.getActiveSession(), "/me/scores", param , HttpMethod.GET); 
if(request!=null) 
{ 
    request.setCallback(new Request.Callback() 
    { 
     public void onCompleted(Response response) 
     { 
        if(response!=null) 
        { 
         GraphObject graphObject = response.getGraphObject(); 
         if(graphObject==null) 
         { 
          //Enjoy 
         } 

        } 
     } 
    } 
}