Отзыв игровых сервисов Play

Обеспечьте беспрепятственный вход пользователей в вашу игру, продолжая использовать собственную систему учетных записей. С помощью API Play Games Services Recall вы можете связать внутриигровые учетные записи с учетной записью Google Play Games Services. Затем, когда пользователь играет в вашу игру на разных устройствах (или на одном и том же устройстве после переустановки игры), вы запрашиваете связанную внутриигровую учетную запись и оптимизируете процесс входа в систему.

Если вы интегрировались с API функции запоминания игр Android , то эти API должны показаться вам знакомыми. Любые серверные интеграции с сервисами Play Games Services Recall можно повторно использовать в играх для ПК, поскольку они одинаковы как для Android, так и для ПК.

Пространство имен: PlayPcSdkManaged.Recall

Класс клиента: RecallClient

Предварительные требования

Добавьте идентификатор вашего проекта Play Games Services в манифест.

После завершения настройки Play Games Services в Play Console ваша игра получит связанный с ней идентификатор проекта Play Games Services. Используя этот идентификатор проекта, который можно найти на странице конфигурации Play Games Services в Play Console, обновите manifest.xml вашей игры.

Пример содержимого файла manifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<?Manifest version="1">
   <?Application>
     <?PackageName>com.example.package<?/PackageName>
     <?PlayGamesServices>
          <?ProjectId>123456789<?/ProjectId>
     <?/PlayGamesServices>
   <?/Application>
<?/Manifest>

Примечание: Если вы хотите использовать PC SDK при разработке в редакторе Unity без необходимости цифровой подписи исполняемого файла игры или запуска её из Google Play Games, см. руководство по настройке режима разработчика .

Создайте клиента

Всегда используйте фабрику для создания объекта RecallClient . Это гарантирует автоматическую регистрацию безопасных для Unity коллбэков.

using UnityEngine;
using System;
using System.Threading.Tasks;
// Required SDK Namespaces
using PlayPcSdkManaged.Recall;
using PlayPcSdkManaged.Unity;

public class RecallManager : MonoBehaviour
{
    private RecallClient _recallClient;

    public void SetupRecall()
    {
        try
        {
            // Creates the client with the required UnityRecallCallbacksHandler
            _recallClient = PlayPcSdkFactory.CreateRecallClient();
            Debug.Log("Recall Client created successfully.");
        }
        catch (Exception ex)
        {
            Debug.LogError($"Failed to create Recall Client: {ex.Message}");
        }
    }

    private void OnDestroy()
    {
        // Always dispose of the client to clean up native C++ resources
        _recallClient?.Dispose();
    }
}

Запросить доступ для отзыва

Когда в вашей игре обрабатывается процесс входа в систему, например, добавление внутриигровой учетной записи, запросите отзыв доступа с помощью RequestRecallAccessAsync .

Этот вызов возвращает идентификатор сессии , который используется вашим бэкэндом для выполнения серверных запросов к Google с целью привязки и отвязки ваших внутриигровых учетных записей от пользователей Play Games Services.

public async Task RequestRecallAccessAsync()
{
    try
    {
        Debug.Log("Requesting Recall access...");

        // Async call to retrieve the session ID
        var result = await _recallClient.RequestRecallAccessAsync();

        if (result.IsOk)
        {
            // On success, access the RecallSessionId
            var sessionId = result.Value.RecallSessionId;
            Debug.Log($"Recall Access Granted! Session ID: {sessionId}");

            // Pass 'sessionId' to your backend server to process account linking
        }
        else
        {
            // Handle expected API errors (e.g., Error)
            Debug.LogError($"Request Failed: {result.Code} - {result.ErrorMessage}");
        }
    }
    catch (Exception ex)
    {
        Debug.LogException(ex);
    }
}

Обработайте идентификатор сессии «Отзыв».

После того как ваша игра получит идентификатор сессии Recall и передаст его на ваш сервер, используйте серверные REST API Play Games для:

  • Запрос существующих связанных внутриигровых учетных записей с использованием recall.retrieveTokens
  • Добавляйте или обновляйте связанные внутриигровые учетные записи с помощью recall.linkPersona
  • Удалите связанные внутриигровые учетные записи с помощью recall.unlinkPersona

Более подробное руководство по интеграции на стороне сервера см. в документации по использованию API Recall на вашем игровом сервере .