[Facebook Instant Games] SDK (leaderBoard)

2018. 6. 4. 15:01· Frontend/Facebook Instant Game


이 글은 PC 버전 TISTORY에 최적화 되어있습니다.





Leaderboard


인스턴트 게임 리더보드 관련 SDK


getLeaderboardAsync( )

이 인스턴트 게임에 속한 특정 리더 보드를 가져옵니다.

Parameters

  • name string 리더보드의 이름. 인스턴트 게임의 각 리더보드에는 고유한 이름이 있어야함.

Examples

FBInstant.getLeaderboardAsync('my_awesome_leaderboard')
  .then(leaderboard => {
    console.log(leaderboard.getName()); // 'my_awesome_leaderboard'
  });
  • Throws LEADERBOARD_NOT_FOUND
  • Throws NETWORK_FAILURE
  • Throws CLIENT_UNSUPPORTED_OPERATION
  • Throws INVALID_OPERATION
  • Throws INVALID_PARAM

Returns Promise<Leaderboard> 


getName( )

리더보드의 이름

Examples

FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    console.log(leaderboard.getName()); // my_leaderboard
  });

Returns string


getContextID( )


리더 보드가 연결된 컨텍스트의 ID거나 특정 컨텍스트에 연결되어 있지 않은 경우 null을 반환함.

Examples

FBInstant.getLeaderboardAsync('contextual_leaderboard')
  .then(function(leaderboard) {
    console.log(leaderboard.getContextID()); // 12345678
  });
FBInstant.getLeaderboardAsync('global_leaderboard')
  .then(function(leaderboard) {
    console.log(leaderboard.getContextID()); // null
  });

Returns string?


getEntryCountAsync( )


리더보드에 있는 플레이어 항목의 총 개수를 가져옴.

Examples

FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.getEntryCountAsync();
  })
  .then(function(count) { console.log(count); }); // 24
  • Throws NETWORK_FAILURE
  • Throws RATE_LIMITED

Returns Promise<number>


setScoreAsync( )


플레이어의 점수를 업데이트함. 플레이어에 기존 점수가 있는 경우 새 점수가 더 좋은 경우에만 바뀝니다. (참고: 리더보드가 특정 컨텍스트에 연결되어있으면 해당 컨텍스트에 있어야 게임 플레이어의 점수를 설정 할 수 있음)

Parameters

  • score number 새 점수 (64비트 정수형이여야함.)
  • extraData string? 저장된 점수와 연관시킬 메타 데이터 (크기가 2KB 미만이어야함.)

Examples

FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.setScoreAsync(42, '{race: "elf", level: 3}');
  })
  .then(function(entry) {
    console.log(entry.getScore()); // 42
    console.log(entry.getExtraData()); // '{race: "elf", level: 3}'
  });
  • Throws LEADERBOARD_WRONG_CONTEXT
  • Throws NETWORK_FAILURE
  • Throws INVALID_PARAM
  • Throws INVALID_OPERATION
  • Throws RATE_LIMITED

Returns Promise<LeaderboardEntry> 업데이트된 플레이어에 대한 현재 LeaderboardEntry를 반환함



getPlayerEntryAsync( )


현재 플레이어의 리더 보드 항목을 가져오거나 플레이어가 아직 설정하지 않으 경우 null을 가져옵니다.

Examples

FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.getPlayerEntryAsync();
  })
  .then(function(entry) {
    console.log(entry.getRank()); // 2
    console.log(entry.getScore()); // 42
    console.log(entry.getExtraData()); // '{race: "elf", level: 3}'
  });
  • Throws NETWORK_FAILURE
  • Throws INVALID_OPERATION
  • Throws RATE_LIMITED

Returns Promise<LeaderboardEntry>


getEntriesAsync( )


리더보드에서 점수 순위별로 정렬된 리더보드 항목 집합을 검색함.

Parameters

  • count number 리더보드에서 가져오기를 시도할 항목 수. 기본 값은 10이며, 현재 쿼리당 최대 100개의 항목을 가져올 수 있음.
  • offset number 항목을 가져올 리더보드 상단에서의 offset.

Examples

FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.getEntriesAsync();
  })
  .then(function(entries) {
    console.log(entries.length); // 10
    console.log(entries[0].getRank()); // 1
    console.log(entries[0].getScore()); // 42
    console.log(entries[1].getRank()); // 2
    console.log(entries[1].getScore()); // 40
  });
FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.getEntriesAsync(5, 3);
  })
  .then(function(entries) {
    console.log(entries.length); // 5
    console.log(entries[0].getRank()); // 4
    console.log(entries[0].getScore()); // 34
    console.log(entries[1].getRank()); // 5
    console.log(entries[1].getScore()); // 31
  });
  • Throws NETWORK_FAILURE
  • Throws RATE_LIMITED

Returns Promise<Array<LeaderboardEntry>>


getConnectedPlayerEntriesAsync( )


현재 플레이어의 연결된 플레이어 (현재 플레이어 포함)의 리더보드 점수 항목을 연결된 플레이어 세트의 로컬 순위에 따라 검색함. (무슨 말이지..?)

Parameters

  • count number 리더보드에서 가져오기를 시도할 항목 수. 기본 값은 10이며, 현재 쿼리당 최대 100개의 항목을 가져올 수 있음.
  • offset number 가져올 정렬된 연관 플레이어 스코어 집합의 offset

Examples

FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.getConnectedPlayerEntriesAsync();
  })
  .then(function(entries) {
    console.log(entries.length); // 10
    console.log(entries[0].getRank()); // 1
    console.log(entries[0].getScore()); // 42
    console.log(entries[1].getRank()); // 2
    console.log(entries[1].getScore()); // 40
  });
FBInstant.getLeaderboardAsync('my_leaderboard')
  .then(function(leaderboard) {
    return leaderboard.getConnectedPlayerEntriesAsync(5, 3);
  })
  .then(function(entries) {
    console.log(entries.length); // 5
    console.log(entries[0].getRank()); // 4
    console.log(entries[0].getScore()); // 34
    console.log(entries[1].getRank()); // 5
    console.log(entries[1].getScore()); // 31
  });
  • Throws NETWORK_FAILURE
  • Throws RATE_LIMITED

Returns Promise<Array<LeaderboardEntry>>








LeaderboardEntry


인스턴트 게임 리더보드의 점수 항목


getScore( )


항목과 연관된 점수를 가져옵니다.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getScore()); // 9001
  });

Returns number 


getFormattedScore( )


항목과 연관된 점수를 리더보드와 관계되어있는 포맷으로 변환하여 가져옵니다.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getFormattedScore()); // '90.01 meters'
  });

Returns string 


getTimestamp( )


리더보드 항목이 마지막으로 업데이트 된 시간 스탬프.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getTimestamp()); // 1515806355
  });

Returns number 


getRank( )


리더보드에서 플레이어 순위를 가져옴.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getRank()); // 2
  });

Returns number 


getExtraData( )


점수와 연결된 개발자 지정 페이로드가 있으면 가져오고 없으면 null 반환.

Examples

leaderboard.setScoreAsync(42, '{race: "elf", level: 3}');
  .then(function(entry) {
    console.log(entry.getExtraData()); // '{race: "elf", level: 3}'
  });

Returns string? 


getPlayer( )


항목과 연결된 플레이어 정보 가져옴.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getPlayer().getName()); // Sally
  });

Returns LeaderboardPlayer








LeaderboardPlayer


점수 입력과 관련된 플레이어의 세부 정보


getName( )


플레이어의 로컬라이징된 이름을 가져옴.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getPlayer().getName()); // Sally
  });

Returns string 

getPhoto( )


플레이어의 공개 프로필 사진에 대한 URL을 받아옴.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getPlayer().getPhoto()); // <photo_url>
  });

Returns string?


getID( )


플레이어의 게임 고유 식별자를 가져옴.

Examples

leaderboard.setScoreAsync(9001)
  .then(function(entry) {
    console.log(entry.getPlayer().getID()); // 12345678
  });

Returns string? 







반응형
저작자표시 (새창열림)

'Frontend > Facebook Instant Game' 카테고리의 다른 글

[Facebook Instant Games] 데이터 저장/가져오기  (1) 2018.06.04
[Facebook Instant Games] 리더보드 연동하는 방법  (0) 2018.06.04
[Facebook Instant Games] SDK (context)  (0) 2018.06.01
[Facebook Instant Games] SDK (player)  (0) 2018.06.01
[Facebook Instant Game] 한국 지역에서는 테스트를 못한다고?!  (11) 2018.05.31
[Facebook Instant Game] SDK 한글화  (0) 2018.05.29
'Frontend/Facebook Instant Game' 카테고리의 다른 글
  • [Facebook Instant Games] 데이터 저장/가져오기
  • [Facebook Instant Games] 리더보드 연동하는 방법
  • [Facebook Instant Games] SDK (context)
  • [Facebook Instant Games] SDK (player)
에반황
에반황
"어른이면서 애이기도 하고 싶다."
에반황
에반, 어른반
에반황
전체
오늘
어제
  • 전체보기 (118)
    • About (1)
    • Backend (5)
      • Django (3)
      • Spring (2)
    • Database (2)
      • 아키텍처 (0)
      • SQL (0)
      • Redis (2)
      • 코딩 테스트 (0)
      • 요구 사항 해결 (0)
    • Infra, Cloud (0)
      • AWS (0)
      • GoCD (0)
      • Docker (0)
      • Kubernetes (0)
      • Mesos Marathon (0)
    • Basic (34)
      • C (1)
      • C# (4)
      • C++ (1)
      • Java (9)
      • Javascript (6)
      • Typescript (5)
      • GO (0)
      • Python (4)
      • 프로그래밍 기초 (1)
      • 게임 디자인 패턴 (1)
      • 운영체제 (0)
      • 알고리즘 (2)
      • 자료구조 (0)
    • Computer Science (0)
    • Frontend (74)
      • Swift (1)
      • Unity (31)
      • Android (13)
      • Vue.js (2)
      • Phaser (1)
      • Cocos2D JS (2)
      • Cocos Creator (16)
      • Facebook Instant Game (8)
반응형

인기 글

최근 댓글

hELLO · Designed By 정상우.v4.2.2
에반황
[Facebook Instant Games] SDK (leaderBoard)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.