From 709b175c5e1cf2956c74a14c362a5f9bb8373e88 Mon Sep 17 00:00:00 2001 From: tudor <7089284+tudddorrr@users.noreply.github.com> Date: Wed, 18 Mar 2026 20:20:14 +0000 Subject: [PATCH] google play games integration docs --- docs/godot/identifying.mdx | 48 ++++++++++++++- docs/integrations/google-play-games.md | 24 ++++++++ docs/integrations/steamworks.md | 2 +- docs/unity/identifying.mdx | 79 ++++++++++++++++++++----- src/components/HomepageFeatures.tsx | 4 +- static/img/gpg-integration.png | Bin 0 -> 45624 bytes 6 files changed, 135 insertions(+), 22 deletions(-) create mode 100644 docs/integrations/google-play-games.md create mode 100644 static/img/gpg-integration.png diff --git a/docs/godot/identifying.mdx b/docs/godot/identifying.mdx index f5fb9f0..6764892 100644 --- a/docs/godot/identifying.mdx +++ b/docs/godot/identifying.mdx @@ -97,8 +97,8 @@ You can merge players using `Talo.players.merge()` by providing the IDs of both :::caution There are a few limitations to merging players: -- **Player 2** cannot have a Talo Player Authentication alias or a Steam alias. -- If **Player 1** has a Talo Player Authentication or Steam alias, the merge must be initiated while identified as **Player 1** (i.e. `Talo.current_alias` must belong to Player 1). In this case, make sure your last `Talo.players.identify()` call before merging uses Player 1's alias. +- **Player 2** cannot have a Talo Player Authentication, Steam or Google Play Games alias. +- If **Player 1** has a Talo Player Authentication, Steam or Google Play Games alias, the merge must be initiated while identified as **Player 1** (i.e. `Talo.current_alias` must belong to Player 1). In this case, make sure your last `Talo.players.identify()` call before merging uses Player 1's alias. - Both players cannot have overlapping alias services. For example, if both players have an alias with the service "username", the merging process will fail. ::: @@ -164,6 +164,50 @@ You can build an avatar URL by replacing **[AVATAR_HASH]** with the `META_STEAMW These props will be updated each time the player is identified using `Talo.players.identify_steam()`. +## Google Play Games integration + +:::tip +You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations). +::: + +If you have the Google Play Games integration enabled, Talo can identify a player using an OAuth client. Follow Google's official documentation for setting up [Game Server credentials](https://developer.android.com/games/pgs/console/setup#generate_an_oauth_20_client_id). + +All you need to do is pass a server auth code to the `Talo.players.identify_google_play_games` function. Here's an example using the [Godot Play Games Services plugin](https://github.com/godot-sdk-integrations/godot-play-game-services): + +```gdscript +extends Node2D + +@onready var play_games_sign_in_client: PlayGamesSignInClient = %PlayGamesSignInClient + +func _enter_tree() -> void: + GodotPlayGameServices.initialize() + +func _ready() -> void: + play_games_sign_in_client.user_authenticated.connect( + func (is_authenticated): + if is_authenticated: + play_games_sign_in_client.request_server_side_access("yourid.apps.googleusercontent.com", false) + ) + + play_games_sign_in_client.server_side_access_requested.connect( + func (auth_code): + Talo.players.identify_google_play_games(auth_code) + ) + + play_games_sign_in_client.is_authenticated() +``` + +Replace "yourid.apps.googleusercontent.com" with the client ID you generated earlier. + +### Google Play Games player props + +After successfully authenticating the player, these [props](/docs/godot/player-props) will automatically be created for them: + +- `META_GOOGLE_PLAY_GAMES_DISPLAY_NAME` - The player's chosen display name +- `META_GOOGLE_PLAY_GAMES_AVATAR_URL` - A direct link to the player's avatar + +These props will be updated each time the player is identified using `Talo.players.identify_google_play_games()`. + ## Offline player cache If the `cache_player_on_identify` setting is enabled (default `true`), Talo will store player data locally. If a player tries to identify while offline, Talo will try and use local data if it exists. diff --git a/docs/integrations/google-play-games.md b/docs/integrations/google-play-games.md new file mode 100644 index 0000000..3225a7b --- /dev/null +++ b/docs/integrations/google-play-games.md @@ -0,0 +1,24 @@ +--- +sidebar_position: 2 +description: Use Talo's native Google Play Games integration to automatically identify players signed in to Google. +--- + +# Google Play Games + +Using [Game Server credentials](https://developer.android.com/games/pgs/console/setup#generate_an_oauth_20_client_id), you can automatically identify players signed in to Google Play Games. + +You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations). + +![The Talo integrations page showing the Google Play Games settings](/img/gpg-integration.png) + +
+ +## Authentication + +To get started, [create an OAuth client](https://developer.android.com/games/pgs/console/setup#generate_an_oauth_20_client_id) (ensure you create credentials for a **Game server**) and copy the details into the dashboard. + +To identify a player, [request a server auth code](https://developer.android.com/games/pgs/android/server-access) and pass the code to Talo. Talo will automatically sync the player without them needing to create an account. + +Talo will also add helpful `props` to your player such as their display name and avatar URL. + +More info is available in the [Godot plugin docs](/docs/godot/identifying#google-play-games-integration) and [Unity package docs](/docs/unity/identifying#google-play-games-integration). diff --git a/docs/integrations/steamworks.md b/docs/integrations/steamworks.md index 94f20c2..bc73756 100644 --- a/docs/integrations/steamworks.md +++ b/docs/integrations/steamworks.md @@ -19,7 +19,7 @@ By setting up the Talo Steamworks integration, you are able to authenticate and You'll need to pass the ticket generated by the [GetAuthTicketForWebApi](https://partner.steamgames.com/doc/api/ISteamUser#GetAuthTicketForWebApi) API when identifying players. Using this, Talo will automatically verify the session and sync the player. -Talo will also add helpful `props` to your player such as app ownership details and ban statuses. +Talo will also add helpful `props` to your player such as app ownership details, profile names and avatars. More info is available in the [Godot plugin docs](/docs/godot/identifying#steamworks-integration) and [Unity package docs](/docs/unity/identifying#steamworks-integration). diff --git a/docs/unity/identifying.mdx b/docs/unity/identifying.mdx index 752863b..150e7df 100644 --- a/docs/unity/identifying.mdx +++ b/docs/unity/identifying.mdx @@ -80,7 +80,7 @@ public void DoStuffIfIdentified() { try { - Talo.IdentityCheck(); + Talo.IdentityCheck(); } catch (Exception ex) { @@ -100,24 +100,24 @@ Once all the relevant data has been cleared, the `Talo.Players.OnIdentityCleared ```csharp private async void ClearIdentity() { - try - { - await Talo.Players.ClearIdentity(); - } - catch (Exception ex) - { - Debug.LogError($"Failed to clear identity: {ex.Message}"); - } + try + { + await Talo.Players.ClearIdentity(); + } + catch (Exception ex) + { + Debug.LogError($"Failed to clear identity: {ex.Message}"); + } } // Listen for the identity cleared event void Start() { - Talo.Players.OnIdentityCleared += () => - { - Debug.Log("Player identity has been cleared"); - // Handle post-clear logic here - }; + Talo.Players.OnIdentityCleared += () => + { + Debug.Log("Player identity has been cleared"); + // Handle post-clear logic here + }; } ``` @@ -132,8 +132,8 @@ You can merge players using `Talo.Players.Merge()` by providing the IDs of both :::caution There are a few limitations to merging players: -- **Player 2** cannot have a Talo Player Authentication alias or a Steam alias. -- If **Player 1** has a Talo Player Authentication or Steam alias, the merge must be initiated while identified as **Player 1** (i.e. `Talo.CurrentAlias` must belong to Player 1). In this case, make sure your last `Talo.Players.Identify()` call before merging uses Player 1's alias. +- **Player 2** cannot have a Talo Player Authentication, Steam or Google Play Games alias. +- If **Player 1** has a Talo Player Authentication, Steam or Google Play Games alias, the merge must be initiated while identified as **Player 1** (i.e. `Talo.CurrentAlias` must belong to Player 1). In this case, make sure your last `Talo.Players.Identify()` call before merging uses Player 1's alias. - Both players cannot have overlapping alias services. For example, if both players have an alias with the service "username", the merging process will fail. ::: @@ -212,6 +212,53 @@ You can build an avatar URL by replacing **[AVATAR_HASH]** with the `META_STEAMW These props will be updated each time the player is identified using `Talo.Players.IdentifySteam()`. +## Google Play Games integration + +:::tip +You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations). +::: + +If you have the Google Play Games integration enabled, Talo can identify a player using an OAuth client. All you need to do is pass a server auth code to the `Talo.Players.IdentifyGooglePlayGames` function. + +The official Google Play Games Plugin has documentation for how to [request server auth codes](https://developer.android.com/games/pgs/unity/unity-start#retrieve-auth-codes). + +```csharp +using GooglePlayGames.BasicApi; + +// Define selectedScope having additional identity scopes. +private List selectedScopes = new List(); + +// Add scopes you want to request. +selectedScopes.Add(AuthScope.OPEN_ID); +selectedScopes.Add(AuthScope.PROFILE); +selectedScopes.Add(AuthScope.EMAIL); + +// Call RequestServerSideAccess with additional scopes and retrieve +// authcode and grantedscopes list. +PlayGamesPlatform.Instance.RequestServerSideAccess( + /* forceRefreshToken= */ false, + selectedScopes, + (AuthResponse authResponse) => + { + string authCode = authResponse.GetAuthCode(); + List grantedScopes = authResponse.GetGrantedScopes(); + + // Pass the auth code to Talo + // Alternatively, you can `await` the result + _ = Talo.Players.IdentifyGooglePlayGames(authCode); + } +); +``` + +### Google Play Games player props + +After successfully authenticating the player, these [props](/docs/unity/player-props) will automatically be created for them: + +- `META_GOOGLE_PLAY_GAMES_DISPLAY_NAME` - The player's chosen display name +- `META_GOOGLE_PLAY_GAMES_AVATAR_URL` - A direct link to the player's avatar + +These props will be updated each time the player is identified using `Talo.Players.IdentifyGooglePlayGames()`. + ## Offline player cache If the `cachePlayerOnIdentify` setting is enabled (default `true`), Talo will store player data locally. If a player tries to identify while offline, Talo will try and use local data if it exists. diff --git a/src/components/HomepageFeatures.tsx b/src/components/HomepageFeatures.tsx index b695a17..1aa86de 100644 --- a/src/components/HomepageFeatures.tsx +++ b/src/components/HomepageFeatures.tsx @@ -39,9 +39,7 @@ const FeatureList = [ { title: 'Integrations', Svg: require('../../static/img/tabler-icon-exchange.svg').default, - description: ( - <>Learn how integrations like Steamworks sync with Talo and how to configure them. - ), + description: <>Learn more about Talo's Steamworks and Google Play Games integrations., link: '/docs/integrations/steamworks', }, ] diff --git a/static/img/gpg-integration.png b/static/img/gpg-integration.png new file mode 100644 index 0000000000000000000000000000000000000000..317da885d1d6dbf6293c39ebe8ee040df24deab6 GIT binary patch literal 45624 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� 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 Z`ljya(KtwFlJNJFO3&5gs%6aI{ufxv=WYN1 literal 0 HcmV?d00001