Google Play Services - Leaderboard

0

Mam problem z usługami Google Play, a konkretnie z Leaderboards. Postępowałem zgodnie z obydwoma tutorialami:

https://code.tutsplus.com/tutorials/integrating-google-play-services-on-android--cms-19828
i https://code.tutsplus.com/tutorials/google-play-game-services-leaderboards--cms-20700

Próbowałem tak jak tam zalecają przez GoogleClientApi buildera. Jednak na oficjalnej stronie wyczytałem o możliwości rozszerzenia BaseGameActivity. Spróbowałem więc też w sposób jednak żaden nie działa.

Dodałem w dev konsoli usługi gier tak jak powinno być. Skopiowałem leaderboards ID i app ID do moich resources.

Próbuje jednak wywołać

getLeaderboardIntent()

i

submitScore()

I zdaje się, że nie działają jak powinny

0

Widzę, że mam coś namieszane w Google API: https://console.developers.google.com/. Nie wiem tylko jak tam pozmieniać te wartości.

0

Co do BaseGameActivity:
Zrób tak jak w oficjalnym poradniku i będzie hulać: https://developers.google.com/games/services/android/quickstart
Mi zeszło parę dni aż to ogarnąłem.

0

A to ciekawe tmk13 dzieki za linka.

Kur.. Siedze juz nad tym kilka dni i wciąż to samo. Po prostu namieszałem na początku za bardzo i nie można teraz tego odkręcić. W usługach gier do jednego projektu mam powiązane 2 apki o takim samym pakiecie, nie wiem jak to możliwe. W google api też pełno nasrałem tych kluczy API czy identyfikatorów klienta OAuth 2.0 i już sam nie wiem co jest czym. A od nowa nie mogę wszystkiego zrobić, bo istnieją już jakieś powiązania i zje.ana polityka Google zabrania usuwania czegoś, co już istnieje. Paranoja

0

Trzymajcie mnie bo zaraz kur.a cos roz...

0

Sprawdź w Game Services czy OAth2 Client ID zgadza się z tym z Credentials. Jeśli tak to dodaj tam SHA-1 klucza, którym podpisujesz apk. Może być na razie domyślny androiddebugkey, który jest w folderze ".android/debug.keystore" na Linuksie. Dodaj też go w Credentials do API key, które ustawiasz w manifeście. Ściągnij z console.firebase google-services.json do folderu app lub android. Potem odpalaj apke z podpisanego apk. Można też dodać do Gradla żeby podpisywał sam przy odpalaniu z Android Studio.

0
tmk13 napisał(a):

Sprawdź w Game Services czy OAth2 Client ID zgadza się z tym z Credentials.

Tutaj chyba pierwszy zgrzyt. Do usługi gier jakimś cudem dwukrotnie powiązałem apkę o tym samym pakiecie. Jednak chyba ani na jednej ani drugiej nie ma zgodności z id klienta w Google API. Nie jestem do końca przekonany czy chodzi o cały identyfikator czy jedynie o pierwszy ciąg liczb do myślnika ? Ten początek mają obydwie powiązane, ale końcówki wszystkie mają inne.

Co do odcisku SHA1 to jest on zgodny z tym, co zdefiniowałem w wersji dystrybucyjnej keystore.jks zarówno w usługach gier jak i API.

Swoją drogą nigdzie nie piszą o wymaganych uprawnieniach. Czy poza

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />

coś jeszcze jest wymagane?

0

Nie wklejaj swoich kluczy na forum.
Chodzi o ten dłuższy Client ID. Jest automatycznie tworzony przy linkowaniu aplikacji i potem nie da się go zmienić w Game Services. Wystarczy chyba zalinkować kolejny raz przez "Link another app" i utworzy się nowy wpis w Credentials. Możesz też utworzyć od nowa aplikacje w Game Services.
Co do uprawnień to do logowania i Leaderboards czy Achievements to wystarczy samo "INTERNET". Chyba że dodajesz jeszcze jakieś inne API oprócz Games.

0

Działa. Przyczyną okazała się niezgodność identyfikatorów Client ID.

1 użytkowników online, w tym zalogowanych: 0, gości: 1