প্লে গেম সার্ভিসেস রিকল

আপনার নিজস্ব অ্যাকাউন্ট সিস্টেম ব্যবহার করা অব্যাহত রেখেই ব্যবহারকারীদের নির্বিঘ্নে আপনার গেমে সাইন ইন করান। প্লে গেমস সার্ভিসেস রিকল এপিআই (Play Games Services Recall APIs) ব্যবহার করে আপনি ইন-গেম অ্যাকাউন্টগুলোকে একটি গুগল প্লে গেমস সার্ভিসেস অ্যাকাউন্টের সাথে লিঙ্ক করতে পারেন। এরপর যখন কোনো ব্যবহারকারী বিভিন্ন ডিভাইসে (অথবা আপনার গেমটি পুনরায় ইনস্টল করার পর একই ডিভাইসে) আপনার গেমটি খেলে, তখন আপনি লিঙ্ক করা ইন-গেম অ্যাকাউন্টটি থেকে তথ্য সংগ্রহ করে সাইন-ইন প্রক্রিয়াটিকে আরও সহজ করে তুলতে পারেন।

আপনি যদি অ্যান্ড্রয়েড রিকল এপিআই (Android Recall APIs) ইন্টিগ্রেট করে থাকেন, তাহলে এই রিকল এপিআইগুলো আপনার কাছে পরিচিত মনে হবে। প্লে গেমস সার্ভিসেস রিকল (Play Games Services Rickl)-এর সাথে করা যেকোনো সার্ভার-সাইড ইন্টিগ্রেশন পিসি গেমগুলোতেও পুনরায় ব্যবহার করা যেতে পারে, কারণ সেগুলো অ্যান্ড্রয়েড এবং পিসি উভয় প্ল্যাটফর্মেই একই রকম।

নেমস্পেস: PlayPcSdkManaged.Recall

ক্লায়েন্ট ক্লাস: RecallClient

পূর্বশর্ত

ম্যানিফেস্টে আপনার প্লে গেমস সার্ভিসেস প্রজেক্ট আইডি যোগ করুন।

প্লে কনসোলে প্লে গেমস সার্ভিসেস সেটআপ সম্পন্ন করার পর, আপনার গেমের সাথে এখন একটি প্লে গেমস সার্ভিসেস প্রজেক্ট আইডি যুক্ত থাকবে। প্লে কনসোলের প্লে গেমস সার্ভিসেস কনফিগারেশন পেজে এই প্রজেক্ট আইডিটি খুঁজে পাওয়া যাবে এবং এটি ব্যবহার করে আপনার গেমের 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>

দ্রষ্টব্য: আপনি যদি আপনার গেম এক্সিকিউটেবলকে ডিজিটালভাবে স্বাক্ষর না করে বা গুগল প্লে গেমস থেকে চালু না করেই ইউনিটি এডিটরে ডেভেলপ করার সময় পিসি এসডিকে ব্যবহার করতে চান, তাহলে অতিরিক্ত ম্যানিফেস্ট কনফিগারেশন ধাপগুলোর জন্য ডেভেলপার মোড সেটআপ গাইড দেখুন।

ক্লায়েন্ট তৈরি করুন

RecallClient তৈরি করতে সর্বদা ফ্যাক্টরি ব্যবহার করুন। এটি নিশ্চিত করে যে ইউনিটি-সেফ কলব্যাকগুলি স্বয়ংক্রিয়ভাবে নিবন্ধিত হয়।

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 ব্যবহার করে রিকল অ্যাক্সেসের জন্য অনুরোধ করুন।

এই কলটি একটি সেশন আইডি ফেরত দেয়, যা আপনার ব্যাকএন্ড ব্যবহার করে প্লে গেমস সার্ভিসেস ব্যবহারকারীর সাথে আপনার ইন-গেম অ্যাকাউন্টগুলো লিঙ্ক বা আনলিঙ্ক করার জন্য গুগল-এ সার্ভার-সাইড কল করে।

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

রিকল সেশন আইডি প্রক্রিয়া করুন

একবার আপনার গেমটি রিকল সেশন আইডি পেয়ে গেলে এবং সেটি আপনার ব্যাকএন্ড গেম সার্ভারে পাঠিয়ে দিলে, প্লে গেমস সার্ভার-সাইড REST API ব্যবহার করে নিম্নলিখিত কাজগুলো করুন:

  • recall.retrieveTokens ব্যবহার করে বিদ্যমান লিঙ্ক করা ইন-গেম অ্যাকাউন্টগুলির জন্য কোয়েরি করুন।
  • recall.linkPersona ব্যবহার করে লিঙ্ক করা ইন-গেম অ্যাকাউন্টগুলি যোগ বা আপডেট করুন।
  • recall.unlinkPersona ব্যবহার করে লিঙ্ক করা ইন-গেম অ্যাকাউন্টগুলি মুছে ফেলুন।

সার্ভার-সাইড ইন্টিগ্রেশন সম্পর্কে আরও বিস্তারিত নির্দেশিকার জন্য, আপনার গেম সার্ভারে রিকল এপিআই (Recall API) কীভাবে ব্যবহার করবেন সে সম্পর্কিত ডকুমেন্টেশনটি দেখুন।