请问,你的排行榜配置的时候 是全球排行榜还是社交排行榜?
第一个问题: yes的话,是社交排行榜,no为全球排行榜.
第二个问题:getConnectedPlayerEntriesAsync方法表示从全球排行榜中,找到自己的好友的排行,也就是说,从全球排行榜中,找到自己的好友的分数,得到一个排行榜,返回给我们.
第三个问题:2个参数分别代表什么,暂时用(5,3)来表示吧.官方文档对这两个数字的定义为count和offset,一个是想要获得的排行榜数据的条目,另一个也就是偏移量,所谓的偏移量,也就是index,从0开始算起,也就是说,从数组的第3位开始,取出5条数据.
对第三个问题进行说明,这里只是取出来一部分的排行榜,估计可鞥是为了做类似排行榜分页的功能,所以提供了这个接口,防止数据量太大,而客户端要一次都取出来造成的网络问题
我在配置的时候,配置的是全球排行榜,全球排行榜和社交排行榜在取数据的时候是有去别的:
假如排行榜名字叫做 myRank
- 如果是全球排行榜,排行榜的名字的字符串就是 ‘myRank’
- 如果排行榜是社交排行榜,那么排行榜名字的字符串是 ‘myRank.’ + FBInstant.context.getID() ;注意,这里面有一个点号 ‘.’ ,这个是必须要有的,否则会报错,其实在排行榜页面也能够区分出来什么是全球排行榜,什么是社交排行榜,
如下图,很明显,社交排行榜后面会带上 ‘.<context_id>’ ,这也就是为什么社交排行榜名字字符串要带上FBInstant.context.getID() ;
1,我也是这样理解的,如果这样的话那getPlayerEntryAsync()这个函数代表的是自身的排名,如果是全球排行的话,是不是就代表的是在全球的排名?
2,其实就是想获得自己所有好友的排行榜,刚开始用的社交排行榜,但是总获取不到排行榜,提示找不到该排行榜,你用的是社交排行榜还是全球排行榜?
哦,第一个问题,我还没具体试过啊,这个你可以试试看,如果设置的是全球排行榜,那么一般来说,这儿方法获取的应该就是全球的排行榜.
第二个问题啊,我暂时用的是全球排行榜,社交排行榜获取不到的话,有可能是因为你调用的方法是Facebook的SDK6.2版本,然后开发环境的SDK是6.0版本造成的.简单的说,就是你用了Facebook6.2的SDK,但是这个SDK对应的是creator1.9.2,结果,你打包的时候是用的1.9.1,就会出现这个问题,1.9.1对应Facebook6.0的SDK,我就遇到了这个问题!!!
我刚测过了。
1,getPlayerEntryAsync()方法跟排行榜类型有关,全球排行榜得到的就是全球中的排行。
2,关于社交排行榜:指的是在特定环境中(messenger消息,帖子,群组等,类似微信的群排行),我之前获得不到,是因为运行环境为solo,所以得到的FBInstant.context.getID()得到的为null,在solo环境中是得不到排行榜的。
新问题:想要得到自己在好友中的排行名次,就复杂点了,不能直接获得了,恐怕只能通过遍历好友排行榜来获得了
要获取自己在好友中的排行,应该只能通过自己的Id,然后在好友榜中遍历判断了,还有,你说的solo环境是什么?想了解一下
6.0版本中的FBInstant.context API 中有解释,指的就是游戏的环境,分为 帖子,小组,messenger对话 ,还有 solo ,solo代表的是自己一个人的环境 ,每个环境都有一个ID ,FBInstant.context.getID(),solo返回的是null。
遍历好友,,,,,如果好友太多的话。。。。。。。。。。
6.0版本中的FBInstant.context API 中有解释,指的就是游戏的环境,分为 帖子,小组,messenger对话 ,还有 solo ,solo代表的是自己一个人的环境 ,每个环境都有一个ID ,FBInstant.context.getID(),solo返回的是null。
遍历好友,,,,,如果好友太多的话。。。。。。。。。。
请问你那边现在解决了 其实就是想得到一个和微信好友排行那样的功能 获取fb的自己好友排行 我用的是creator1.9.2 sdk v6.2 有解决方案的话 求告知 谢谢
嗨,你有没有手动添加 FB模块的sdk ?怎么添加的
FBInstant.updateAsync({
action: ‘LEADERBOARD’,
name: ‘test11’
})
.then(() => console.log(‘Update Posted’))
.catch(error => console.error(error));
采用这个方式向messager发送消息,控制台显示Update Posted,但是并没有收到相关消息,这个为什么呢(前面已经获取到了排行榜,采用全球排行榜)
而且如果采用社交排行榜,FBInstant.context.getID()一直都是null,不知道如何解决,有大神指点一下么
6.0版本中的FBInstant.context API 中有解释,指的就是游戏的环境,分为 帖子,小组,messenger对话 ,还有 solo ,solo代表的是自己一个人的环境 ,每个环境都有一个ID ,FBInstant.context.getID(),solo返回的是null。
这个是更新排行榜,并没有发消息
原来如此,难怪我用FBInstant.context.getID()得到的一直为null
你好,你是怎么改的才通过FBInstant.context.getID()获取到值的,我也是一直获取到的值为null
收藏啊
好久没看相关的帖子了,我没有手动添加FB的SDK啊,creator自带FB的模块啊,为啥要手动添加呢???
FB模块是另一个东西,包含一些社交插件等,小游戏用不到,creator自带的是FBInstant模块
