From 7dfb0224c7657311dae91d2146d638ee6a799a61 Mon Sep 17 00:00:00 2001
From: tudor <7089284+tudddorrr@users.noreply.github.com>
Date: Sun, 3 May 2026 19:03:50 +0100
Subject: [PATCH] apple game center docs
---
docs/godot/identifying.mdx | 69 ++++++++-
docs/integrations/apple-game-center.md | 22 +++
docs/unity/identifying.mdx | 205 ++++++++++++++++---------
static/img/apg-integration.png | Bin 0 -> 50683 bytes
4 files changed, 219 insertions(+), 77 deletions(-)
create mode 100644 docs/integrations/apple-game-center.md
create mode 100644 static/img/apg-integration.png
diff --git a/docs/godot/identifying.mdx b/docs/godot/identifying.mdx
index 6dcd450..8113fb7 100644
--- a/docs/godot/identifying.mdx
+++ b/docs/godot/identifying.mdx
@@ -1,9 +1,9 @@
---
sidebar_position: 2
-description: The Talo Godot plugin allows you to identify multiple aliases, authenticate and sync your players with Steamworks and Google Play.
+description: The Talo Godot plugin allows you to identify multiple aliases, authenticate and sync your players with Steamworks, Google Play and Apple Game Center.
---
-import { ScopeBadges } from '@site/src/components/ScopeBadges'
+import { ScopeBadges } from "@site/src/components/ScopeBadges";
# Identifying a player
@@ -16,7 +16,7 @@ You should identify a player after they have authenticated and before you attemp
## Identifying
-
+
You can identify a player using `Talo.players.identify()`. The code sample below shows you how you could identify a player using a UI element (this example is also available in the Playground scene):
@@ -88,7 +88,7 @@ Once all the relevant data has been cleared, the `Talo.players.identity_cleared`
## Merging players
-
+
Sometimes you might start tracking a player's actions before you know their true identity. For example, you could be tracking events with an "anonymous" identifier and then later on the same player chooses their username before submitting a leaderboard entry. Since both of these players need to be identified, two players will be created.
@@ -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, 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.
+- **Player 2** cannot have a Talo Player Authentication, Steam, Google Play Games or Apple Game Center alias.
+- If **Player 1** has a Talo Player Authentication, Steam, Google Play Games or Apple Game Center 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.
:::
@@ -208,6 +208,63 @@ After successfully authenticating the player, these [props](/docs/godot/player-p
These props will be updated each time the player is identified using `Talo.players.identify_google_play_games()`.
+## Apple Game Center integration
+
+:::tip
+You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations).
+:::
+
+If you have the Apple Game Center integration enabled, Talo can identify a player using Apple's identity verification signature. You can do this via the `Talo.players.identify_game_center` function.
+
+:::caution
+The Game Center plugin singleton is only available on iOS and macOS. It will not exist when running from the Godot editor. Make sure to check for its availability before calling any Game Center methods.
+:::
+
+You'll need to fetch the local player's identity verification signature and pass the resulting values to Talo. Here's an example using the [GodotApplePlugins](https://github.com/migueldeicaza/GodotApplePlugins):
+
+```gdscript
+extends Node
+
+# replace with your own bundle identifier
+const bundle_id := "com.example.game"
+
+var game_center: GameCenterManager
+
+func _ready() -> void:
+ game_center = GameCenterManager.new()
+
+ game_center.authentication_error.connect(
+ func (err: String):
+ push_error("Game Center auth failed: %s" % err)
+ )
+
+ game_center.authentication_result.connect(
+ func (success: bool):
+ if success:
+ _handle_auth_success()
+ )
+
+ game_center.authenticate()
+
+func _handle_auth_success() -> void:
+ var local_player := game_center.local_player
+
+ local_player.fetch_items_for_identity_verification_signature(
+ func (res: Dictionary, err: Variant):
+ if err:
+ push_error(err)
+ else:
+ await Talo.players.identify_game_center(
+ res.url,
+ Marshalls.raw_to_base64(res.data),
+ Marshalls.raw_to_base64(res.salt),
+ res.timestamp,
+ local_player.team_player_id,
+ bundle_id
+ )
+ )
+```
+
## 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/apple-game-center.md b/docs/integrations/apple-game-center.md
new file mode 100644
index 0000000..bf2be34
--- /dev/null
+++ b/docs/integrations/apple-game-center.md
@@ -0,0 +1,22 @@
+---
+sidebar_position: 3
+description: Use Talo's native Apple Game Center integration to automatically identify players signed in to Game Center.
+---
+
+# Apple Game Center
+
+Using your app's Bundle ID, you can automatically identify players signed in to Apple Game Center.
+
+You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations).
+
+
+
+
+
+## Authentication
+
+To get started, enter your app's Bundle ID into the dashboard. Talo will use this to verify the identity verification signature provided by Game Center.
+
+To identify a player, fetch the local player's identity verification signature from Game Center and pass the values to Talo. Talo will cryptographically verify the signature against Apple's public key and automatically identify the player without them needing to create an account.
+
+More info is available in the [Godot plugin docs](/docs/godot/identifying#apple-game-center-integration) and [Unity package docs](/docs/unity/identifying#apple-game-center-integration).
diff --git a/docs/unity/identifying.mdx b/docs/unity/identifying.mdx
index c940a1e..825ba9d 100644
--- a/docs/unity/identifying.mdx
+++ b/docs/unity/identifying.mdx
@@ -1,6 +1,6 @@
---
sidebar_position: 2
-description: The Talo Unity package allows you to identify multiple aliases, authenticate and sync your players with Steamworks and Google Play.
+description: The Talo Unity package allows you to identify multiple aliases, authenticate and sync your players with Steamworks, Google Play and Apple Game Center.
---
import { ScopeBadges } from '@site/src/components/ScopeBadges'
@@ -25,24 +25,24 @@ using TaloGameServices;
public class IdentifyPlayer: MonoBehaviour
{
- public string service = 'username', identifier = '123456';
-
- public void OnButtonClick()
- {
- Identify();
- }
-
- private async void Identify()
- {
- try
- {
- await Talo.Players.Identify(service, identifier);
- }
- catch (Exception ex)
- {
- Debug.LogError(ex.Message);
- }
- }
+ public string service = 'username', identifier = '123456';
+
+ public void OnButtonClick()
+ {
+ Identify();
+ }
+
+ private async void Identify()
+ {
+ try
+ {
+ await Talo.Players.Identify(service, identifier);
+ }
+ catch (Exception ex)
+ {
+ Debug.LogError(ex.Message);
+ }
+ }
}
```
@@ -61,7 +61,7 @@ After a successful identification, the `Talo.Players.OnIdentified()` event will
```csharp
Talo.Players.OnIdentified += async (player) =>
{
- await Talo.Saves.GetSaves();
+ await Talo.Saves.GetSaves();
};
```
@@ -78,16 +78,16 @@ Sometimes you might need to check if a player has been identified before. You ca
```csharp
public void DoStuffIfIdentified()
{
- try
- {
- Talo.IdentityCheck();
- }
- catch (Exception ex)
- {
- return;
- }
-
- // do stuff
+ try
+ {
+ Talo.IdentityCheck();
+ }
+ catch (Exception ex)
+ {
+ return;
+ }
+
+ // do stuff
}
```
@@ -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, 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.
+- **Player 2** cannot have a Talo Player Authentication, Steam, Google Play Games or Apple Game Center alias.
+- If **Player 1** has a Talo Player Authentication, Steam, Google Play Games or Apple Game Center 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.
:::
@@ -149,7 +149,7 @@ Debug.Log(Talo.CurrentAlias.Service) // "username"
var mergedPlayer = await Talo.Players.Merge(player1Id, player2Id, new MergeOptions
{
- postMergeIdentityService = "anonymous" // go back to the anonymous alias
+ postMergeIdentityService = "anonymous" // go back to the anonymous alias
});
Debug.Log(Talo.CurrentAlias.Service) // "anonymous"
@@ -172,25 +172,25 @@ string identity = "talo";
void SignInWithSteam()
{
- // It's not necessary to add event handlers if they are
- // already hooked up.
- // Callback.Create return value must be assigned to a
- // member variable to prevent the GC from cleaning it up.
- // Create the callback to receive events when the session ticket
- // is ready to use in the web API.
- // See GetAuthSessionTicket document for details.
- m_AuthTicketForWebApiResponseCallback = Callback.Create(OnAuthCallback);
-
- SteamUser.GetAuthTicketForWebApi(identity);
+ // It's not necessary to add event handlers if they are
+ // already hooked up.
+ // Callback.Create return value must be assigned to a
+ // member variable to prevent the GC from cleaning it up.
+ // Create the callback to receive events when the session ticket
+ // is ready to use in the web API.
+ // See GetAuthSessionTicket document for details.
+ m_AuthTicketForWebApiResponseCallback = Callback.Create(OnAuthCallback);
+
+ SteamUser.GetAuthTicketForWebApi(identity);
}
void OnAuthCallback(GetTicketForWebApiResponse_t callback)
{
- m_SessionTicket = BitConverter.ToString(callback.m_rgubTicket).Replace("-", string.Empty);
- m_AuthTicketForWebApiResponseCallback.Dispose();
- m_AuthTicketForWebApiResponseCallback = null;
+ m_SessionTicket = BitConverter.ToString(callback.m_rgubTicket).Replace("-", string.Empty);
+ m_AuthTicketForWebApiResponseCallback.Dispose();
+ m_AuthTicketForWebApiResponseCallback = null;
- Talo.Players.IdentifySteam(m_SessionTicket, identity);
+ Talo.Players.IdentifySteam(m_SessionTicket, identity);
}
```
@@ -236,17 +236,17 @@ 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);
- }
+ /* 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);
+ }
);
```
@@ -259,6 +259,69 @@ After successfully authenticating the player, these [props](/docs/unity/player-p
These props will be updated each time the player is identified using `Talo.Players.IdentifyGooglePlayGames()`.
+## Apple Game Center integration
+
+:::tip
+You can enable this integration on the [integrations page](https://dashboard.trytalo.com/integrations).
+:::
+
+If you have the Apple Game Center integration enabled, Talo can identify a player using Apple's identity verification signature. You can do this via the `Talo.Players.IdentifyGameCenter` function.
+
+You'll need to fetch the local player's identity verification signature using [`FetchItems`](https://github.com/apple/unityplugins/blob/main/plug-ins/Apple.GameKit/Apple.GameKit_Unity/Assets/Apple.GameKit/Source/GKLocalPlayer.cs) from the [Apple Game Kit Unity plugin](https://github.com/apple/unityplugins) and pass the resulting values to Talo. Here's a modified version of an example [provided by Unity](https://docs.unity.com/en-us/authentication/platform-signin/apple-game-center):
+
+```csharp
+using UnityEngine;
+using System.Threading.Tasks;
+using Apple.GameKit;
+
+public class IdentifyPlayer : MonoBehaviour
+{
+ private void Start()
+ {
+ Talo.Players.OnIdentified += OnIdentified;
+
+ GKLocalPlayer.AuthenticateError += (err) => {
+ Debug.LogError(err.LocalizedDescription);
+ };
+
+ GKLocalPlayer.AuthenticateUpdate += async (player) => {
+ if (player.IsAuthenticated)
+ {
+ await Identify();
+ }
+ };
+ }
+
+ public async void OnLoginClick()
+ {
+ await GKLocalPlayer.Authenticate();
+ }
+
+ private async Task Identify()
+ {
+ var fetchItemsResponse = await GKLocalPlayer.Local.FetchItemsForIdentityVerificationSignature();
+
+ var publicKeyUrl = fetchItemsResponse.PublicKeyUrl;
+ var signature = fetchItemsResponse.GetSignature();
+ var salt = fetchItemsResponse.GetSalt();
+ var timestamp = fetchItemsResponse.Timestamp;
+
+ await Talo.Players.IdentifyGameCenter(
+ publicKeyUrl,
+ signature,
+ salt,
+ timestamp,
+ GKLocalPlayer.Local.TeamPlayerId
+ );
+ }
+
+ private void OnIdentified(Player player)
+ {
+ Debug.Log($"Player identifier: {player.id}");
+ }
+}
+```
+
## 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/static/img/apg-integration.png b/static/img/apg-integration.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4d187a739c0a69017eea10d8458d3cdeb3b129e
GIT binary patch
literal 50683
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 Ef*h<-JV8OYv9dv!mAFEFE*>>ec2^T
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