Play की गेम सेवाओं को वापस लाएं

अपने खाते के सिस्टम का इस्तेमाल जारी रखते हुए, उपयोगकर्ताओं को अपने गेम में आसानी से साइन इन करने की सुविधा दें. Play की गेम सेवाओं के रीकॉल एपीआई की मदद से, इन-गेम खातों को Google Play की गेम सेवाओं के खाते से लिंक किया जा सकता है. इसके बाद, जब कोई उपयोगकर्ता अलग-अलग डिवाइसों पर आपका गेम खेलता है या गेम को फिर से इंस्टॉल करने के बाद उसी डिवाइस पर खेलता है, तब लिंक किए गए इन-गेम खाते के लिए क्वेरी की जाती है. इससे साइन-इन करने की प्रोसेस आसान हो जाती है.

अगर आपने Android Recall API के साथ इंटिग्रेट किया है, तो आपको ये Recall API जाने-पहचाने लगेंगे. Play की गेम सेवाओं के Recall के साथ किए गए किसी भी सर्वर-साइड इंटिग्रेशन का इस्तेमाल, पीसी पर उपलब्ध गेम फिर से कर सकते हैं. ऐसा इसलिए, क्योंकि ये इंटिग्रेशन Android और पीसी, दोनों के लिए एक जैसे होते हैं.

नेमस्पेस: PlayPcSdkManaged.Recall

क्लाइंट क्लास: RecallClient

ज़रूरी शर्तें

मेनिफ़ेस्ट में Play Games की सेवाओं का प्रोजेक्ट आईडी जोड़ना

Play Console में Play Games की सेवाओं का सेटअप पूरा करने के बाद, आपके गेम के साथ अब Play Games की सेवाओं का प्रोजेक्ट आईडी जुड़ गया है. इस प्रोजेक्ट आईडी का इस्तेमाल करके, अपने गेम के manifest.xml को अपडेट करें. यह आईडी, Play Console में Play की गेम सेवाओं के कॉन्फ़िगरेशन पेज पर मौजूद होता है.

उदाहरण 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>

ध्यान दें: अगर आपको Unity Editor में डेवलपमेंट के दौरान पीसी एसडीके का इस्तेमाल करना है, तो आपको अपने गेम के एक्ज़ीक्यूटेबल पर डिजिटल हस्ताक्षर करने या उसे Google Play Games से लॉन्च करने की ज़रूरत नहीं है. मेनिफ़ेस्ट कॉन्फ़िगरेशन के बारे में ज़्यादा जानकारी के लिए, डेवलपर मोड सेटअप करने की गाइड देखें.

क्लाइंट बनाना

RecallClient बनाने के लिए हमेशा फ़ैक्ट्री का इस्तेमाल करें. इससे यह पक्का होता है कि Unity-safe कॉलबैक अपने-आप रजिस्टर हो जाते हैं.

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();
    }
}

वापस मंगाने के ऐक्सेस का अनुरोध करना

जब आपका गेम, साइन-इन फ़्लो को मैनेज कर रहा हो, तब Recall के ऐक्सेस का अनुरोध करें. उदाहरण के लिए, गेम में कोई खाता जोड़ते समय, RequestRecallAccessAsync का इस्तेमाल करके अनुरोध करें.

इस कॉल से एक सेशन आईडी मिलता है. इसका इस्तेमाल आपका बैकएंड करता है. इससे सर्वर-साइड कॉल किए जाते हैं. ये कॉल, Google को किए जाते हैं. इनका इस्तेमाल, गेम में मौजूद खातों को Play की गेम सेवाओं के उपयोगकर्ता खाते से लिंक और अनलिंक करने के लिए किया जाता है.

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 सेशन आईडी को प्रोसेस करता है

जब आपके गेम को रीकॉल सेशन आईडी मिल जाए और वह इसे बैकएंड गेम सर्वर को भेज दे, तब Play की गेम सेवाओं के सर्वर-साइड REST API का इस्तेमाल करके ये काम करें:

  • recall.retrieveTokens का इस्तेमाल करके, गेम में लिंक किए गए मौजूदा खातों के लिए क्वेरी करना
  • recall.linkPersona का इस्तेमाल करके, गेम में लिंक किए गए खाते जोड़ना या अपडेट करना
  • recall.unlinkPersona का इस्तेमाल करके, गेम में लिंक किए गए खाते मिटाना

सर्वर-साइड इंटिग्रेशन के बारे में ज़्यादा जानकारी देने वाली गाइड के लिए, अपने गेम सर्वर में Recall API का इस्तेमाल करने के तरीके से जुड़ा दस्तावेज़ देखें.