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
}
}
}
}
}
我正在使用以下代码获取我的 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
}
}
}
}
}