2017-07-10 15 views
8

Zbudowałem grę internetową, która przesyła wyniki graczy do tabeli wyników. Gra ma również stronę internetową, która pokazuje wyniki publiczne z tej tablicy wyników. Otrzymuje te dane, uderzając w punkt końcowy API scores.list. Tabela wyników i gra zostały opublikowane w Konsoli Google Play.Gracze otrzymują tylko własne wyniki z score.list API

Trzech graczy rozegrało grę, a ich wyniki zostały przesłane. Wszyscy trzej gracze mają publiczne profile gier, a na stronie Tabeli wyników w Konsoli Play pokazuje, że zostało przesłanych wiele unikalnych wyników. Ale kiedy mój kod JavaScript osiągnie score.list, tylko wynik własny gracza zostanie zwrócony w kolekcji przedmiotów, a nie tych z pozostałych dwóch graczy.

Jak uzyskać wszystkie wyniki z tabeli wyników?

var request = gapi.client.games.scores.list({ 
    leaderboardId: leaderboardId, 
    collection: 'PUBLIC', 
    timeSpan: 'ALL_TIME' 
}); 
request.execute(function(response) { 
    if (response.items) { 
    response.items.forEach(function(item) { 
     // Print item.formattedScore to screen. 
     // Only the currently signed-in player's score is returned. 
    }) 
    } 
}) 
+0

Po wypróbowaniu kodu, masz błędy w swoim błędzie log? – Danee

+0

Brak błędów w dzienniku, a także przejrzałem kod w debugerze, nie widząc żadnych błędów. Kolekcja result.items zawiera tylko jeden wpis. Ten wpis jest wynikiem aktualnie zalogowanego gracza. Spodziewałbym się jednego wpisu w result.items na gracza, który przesłał wynik. –

+2

Dokumenty mówią, że 'publiczna tablica liderów jest tabelą wyników złożoną z graczy, którzy zdecydowali się publicznie udostępnić swoją grę. Jeśli twój gracz nie zdecydował się publicznie podzielić swoją grą, nie pojawi się w tej tabeli liderów. "Prawdopodobnie więc musisz sprawdzić, czy twoi testowi użytkownicy sprawdzili opcję publicznego udostępnienia danych rozgrywki. –

Odpowiedz

0

miałem napisał kilka wywołań API dawno temu, niektóre rzeczy, aby spróbować:

  • Upewnij jesteś nie w testing mode (w trybie testowym ma różne zachowania, jeśli chodzi do wspólnych punktów)
  • Ustaw parametr maxResults na wszelki wypadek (zaakceptowanych wartości to 1 ... 30)
+0

Dziękuję za sugestie! Poszłam za nimi obu. Tryb testowy: upewniono się, że gra została opublikowana i nie jest testowana. maxResults: Ustaw na 30. Niestety nadal otrzymuję tylko wynik obecnego gracza ... –

0

Wh y używasz result jako zmiennej, jeśli masz response jako argument funkcji wywołania zwrotnego? Przypuszczam, że wszystko jest w porządku, jeśli zmienisz function(response) na function(result), a powodem, dla którego to wciąż działa, jest inna zmienna result, która przechowuje pojedynczą ocenę od jednego gracza

+0

Powiedział, że to działa, ale zwraca tylko jeden .. więc domyślam się, że jest to błąd kopiuj-wklej – MaanooAk

+0

To działałoby, jeśli jest inny zmienna 'wynik' używana do przechowywania wyniku w zakresie nadrzędnym – blewherself

+0

Och, drogi, zrobiłem błąd kopiowania i wklejania. Przepraszam za to. Dodałem linię kodu powyżej, która przypisuje zmienną 'result'. –