2017-07-10 50 views
8

我已经构建了一个基于网络的游戏,将玩家的分数提交给排行榜。游戏还有一个网页,显示该排行榜的公共分数。它通过点击scores.list API端点来获取此数据。排行榜和游戏已发布在Google Play控制台中。玩家只能从scores.list获得他们自己的分数API

三位玩家玩过游戏,他们的分数已经提交。所有三个玩家都有公开的玩游戏配置文件,并且Play游戏控制台中的排行榜页面显示已经提交了多个独特的得分。但是当我的Javascript代码击中scores.list时,只有玩家自己的分数在项目收集中返回,而不是其他两个玩家的分数。

如何从排行榜获得所有分数?

var request = gapi.client.games.scores.list({ 
    leaderboardId: leaderboardId, 
    collection: 'PUBLIC', 
    timeSpan: 'ALL_TIME' 
}); 
request.execute(function(response) { 
    if (response.items) { 
    response.items.forEach(function(item) { 
     // Print item.formattedScore to screen. 
     // Only the currently signed-in player's score is returned. 
    }) 
    } 
}) 
+0

尝试你的代码时,你的错误是否有错误登录? – Danee

+0

没有来自日志的错误,并且我在调试器中遍历了代码,而没有看到任何错误。 result.items集合只包含一个条目。该条目是当前登录的玩家的分数。我预计每个提交了分数的玩家都会在result.items中看到一个条目。 –

+2

该文档指出,“公共排行榜是由选择公开分享其游戏活动的玩家组成的排行榜。如果您的玩家没有选择公开分享他们的游戏玩法,他们将不会出现在该排行榜中。“因此,您可能需要检查您的测试用户是否已经选择了公开分享其游戏玩法数据的选项。 –

回答

0

我写了一些API调用一个很久以前,有些事情尝试:

  • 确保您testing mode(在测试模式下,它有不同的行为,当谈到到共享分数)
  • 设置以防万一maxResults参数(接受的值为1 ... 30)
+0

谢谢你的建议!我跟进了两个。测试模式:确保游戏已发布且未在测试中。 maxResults:将其设置为30.不幸的是,我仍然只得到当前球员的得分... –

0

瓦时你是否使用result作为变量,如果你有response作为回调函数的参数?如果你将function(response)更改为function(result)并且原因仍然有效,那么我假设一切都很好,并且你还有另一个变量result,它可以存储单个玩家的单个分数

+0

他说它的工作原理,但只返回一个..所以我想这是一个复制粘贴错误 – MaanooAk

+0

它会工作,如果有另一个'结果'变量用于在父范围中存储一个分数 – blewherself

+0

哦,亲爱的,我做了一个复制粘贴错误。对于那个很抱歉。我添加了上面指定'result'变量的代码行。 –

相关问题