Frontend/Facebook Instant Game

[Facebook Instant Games] SDK (leaderBoard)

에반황 2018. 6. 4. 15:01


이 글은 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? 







반응형