2013-11-26 4 views
0

내 모바일 게임의 최고 기록은 Facebook Scores API으로 바뀝니다. 최고 점수 (Facebook 점수 API 최고 기록

가 점수 (플레이어는 게임을 완료하고, 자신의 실제 최고 점수 아래 점수를 얻었다)
  • 최고 기록을
    • : 그의 대답하지 내가 사이에 분리해서하는 방법을 알고 싶습니다 매우 만족입니다 this 질문에서처럼 특정 플레이어)의

    Spring Social Facebook 나의 현재 솔루션은 다음과 같습니다

    MultiValueMap<String, String> data = new LinkedMultiValueMap<String, String>(); 
    data.add("score", Integer.toString(score)); 
    facebook.post("me", "scores", data); 
    

    이의 문제 접근 방식은 다음과 같습니다 :

    나는 점수를 친구들과 비교하여 점수를 비교하여 사용자에게 게임 완료 화면의 순위를 표시합니다. GRAPH_API/APP_ID/scores 사용자가 점수 100으로 경기를 끝낸 것을 상상해보십시오. 그의 현재 최고 점수는 500입니다. 페이스 북 API에이 새로운 점수를 게시하면 점수 비교를 얻으려는 이후의 요청이 실제 최고 기록이어야하는 500이 아닌 점수로 100을 반환합니다.

    어떻게 해결해야합니까? Facebook에 최고 기록 만 게시하면 게임 완료 화면의 실제 점수와 사용자 친구를 비교할 수 없습니다. 반면에 실제 점수를 게시하면 페이스 북 이외의 다른 곳에서 최고 기록을 저장하거나 사용자에게 최고 점수를 표시하지 않아 사임하고 나에게 좋은 해결책이 아닌 것처럼 보입니다.

  • 답변

    2

    나는 경우 체크 결국 것을 구현해야합니다 현재 점수는 Facebook에서의 점수보다 실제로 높고이 수표가 성공하면 새 점수 만 게시합니다. 페이스 북에 모든 점수를 게시하는 것은 작동하지 않습니다. 왜냐하면 Facebook은 게시 된 점수를 저장하고 현재 업로드 된 점수보다 높은지 확인하지 않기 때문입니다.

    FacebookTemplate facebook = new FacebookTemplate(userAccessToken); 
    int highscore = queryScoreFromFacebook(facebook); 
    if (score > highscore) { 
        MultiValueMap<String, String> data = new LinkedMultiValueMap<String, String>(); 
        data.add("score", Integer.toString(score)); 
        facebook.post("me", "scores", data); 
    } 
    
    // querying all scores for that player and his friends 
    List<Map<String, Object>> players = (List<Map<String, Object>>) facebook.fetchObject("/" + APP_ID + "/scores", Map.class).get("data"); 
    
    1

    페이스 북 Scores API에만 저장 한 언제든지 사용자와 응용 프로그램 당 (높은) 점수 - 당신이 다른 게임에 대한 점수를 추적하려면 자신

    +0

    다른 게임의 점수를 추적하고 싶지 않습니다. 괄호 안에 "높음"은 무엇을 의미합니까? 내가 이미 내 게시물에서 언급 한 것처럼, 그것은 분명히 최고 점수를 저장하지 않습니다. – Jonas

    +0

    API의 의도는 높은 점수를 저장하는 것입니다. 사용자/앱 조합 당 하나의 값을 저장하고 플레이어가 다른 플레이어의 점수를받을 때 뉴스 피드에 기사를 올리는 목적으로 '높음'을 '더 좋음'으로 처리합니다. – Igy

    +0

    아 좋아, 그럴 수 있습니까? 그래서 최고 기록을 어딘가에 유지해야합니다. 맞습니까? GET API 요청을 사용할 때 마지막으로 제출 된 점수 만 반환합니다. 그래서 내 질문에 대한 대답은 : "현재 점수에 추가로 표시하려면 자신의 최고점을 구현해야합니다. 그렇지 않으면 최고 점수를 제출하고 현재 점수가 짜여진 목록을 수동으로 작성해야합니다 친구 점수 "? – Jonas