我正在尝试在unity3d中为android平台构建facebook排行榜。 我已经看过facebook api的分数。我一直在使用朋友粉碎的例子。 我可以使用以下方式成功发布分数:
var query = new Dictionary<string, string>();
query["score"] = Instance.score.ToString();
FB.API("/me/scores", Facebook.HttpMethod.POST, delegate(FBResult r) { Util.Log("Result: " + r.Text); }, query);
我也可以使用以下方法成功申请得分: FB.API(&#34; / app / scores?fields = score,user.limit(20)&#34;,Facebook.HttpMethod.GET,ScoresCallback);
但问题是我只得到一个用户(登录的用户)的得分。 我想要一种方法来获得玩同一游戏的所有Facebook朋友的分数。(我想我们可以限制20个。)
如何做到这一点?
P.S:我也尝试过使用app42平台api,但结果相同。
答案 0 :(得分:0)
您的应用需要user_friends权限才能执行此操作。 用于调试:https://developers.facebook.com/tools/explorer/
答案 1 :(得分:0)
我知道这是一个老问题,但这可能有助于其他人。
当您使用Facebook帐户登录的Unity Editor中玩游戏时,会保存您的分数。但是,由于没有所需的权限,登录的任何其他用户都不会保存分数。 Scores API的documentation表示:
您可以通过发出HTTP POST请求为玩家发布分数 只要玩家拥有,/ USER_ID /得分与用户access_token 授予您应用的publish_actions权限。
您可以通过两种方式进行测试。
如果您在游戏的Facebook控制台中创建测试用户(角色 - &gt;测试用户),您可以使用它们来验证您的代码是否有效。创建至少两个测试用户,并在控制台中与他们成为朋友。获取其中一个用户令牌并使用Unity Editor中的该令牌登录您的游戏。玩游戏,保存分数,然后为其他测试用户执行相同的操作。
然后你应该看到两个测试用户在你的游戏中得分。
或者,this answer列出了另一种获取具有测试用户权限的测试用户令牌的方法。
要在Facebook上使用真实用户帐户进行操作,您需要在Facebook控制台中为您的游戏请求publish_actions权限。 (现状与评论)。
答案 2 :(得分:0)
我有同样的问题。我为应用添加了一个新用户,但无法看到他的分数。这个问题结果只是Facebook服务器的延迟。我等了半个小时才开始自动工作。