FBSDKGraphRequest 响应问题 - 没有得到分数

FBSDKGraphRequest Response Issue - Not getting scores

我正在使用以下代码获取我的 facebook 好友的游戏分数。

    -(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";
            };
            }
            );

}

谁能帮我得到正确的答复?

您似乎在使用 Graph API v2.4。这样,您就必须指定要返回的每个字段。在这里查看我对类似问题的回答:

  • Graph API Score with GET method can't return score field

你需要请求/{app_id}/scores?fields=user,application,score而不是/me/scores?fields=user,application,score我想如果你也想看到朋友的分数

或者,

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

应该也可以

使用以下代码解决。

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

我们如何在 android.i 中做同样的事情在 android 中有同样的问题我正在使用以下代码

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
                        }

                    }
        }
    }
}

如何解决这个问题

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
                        }

                    }
        }
    }
}