প্লে ইন্টিগ্রিটি এপিআই একটি ইন্টিগ্রিটি ভার্ডিক্ট টোকেনের মাধ্যমে আপনার গেমকে ঝুঁকিপূর্ণ এবং প্রতারণামূলক কার্যকলাপ থেকে রক্ষা করে, যা আপনি আপনার ব্যাকএন্ড সার্ভারে যাচাই করেন।
নেমস্পেস: PlayPcSdkManaged.Integrity
ক্লায়েন্ট ক্লাস: IntegrityClient
ক্লায়েন্ট তৈরি করুন
IntegrityClient তৈরি করতে ফ্যাক্টরিটি ব্যবহার করুন। ফ্যাক্টরিটি ইউনিটি-নির্দিষ্ট কলব্যাকগুলো রেজিস্টার করে এবং স্ক্রিপ্টটি ডেস্ট্রয় হয়ে গেলে ক্লায়েন্টটিকে ডিসপোজ করে দেয়।
using UnityEngine; using System; using System.Threading.Tasks; // Required SDK Namespaces using PlayPcSdkManaged.Integrity; using PlayPcSdkManaged.Unity; public class IntegrityManager : MonoBehaviour { private IntegrityClient _integrityClient; public void SetupIntegrity() { try { // Creates the client with the required UnityIntegrityCallbacksHandler _integrityClient = PlayPcSdkFactory.CreateIntegrityClient(); Debug.Log("Integrity Client created successfully."); } catch (Exception ex) { Debug.LogError($"Failed to create Integrity Client: {ex.Message}"); } } private void OnDestroy() { // Always dispose of the client _integrityClient?.Dispose(); } }
একটি ইন্টিগ্রিটি টোকেনের জন্য অনুরোধ করুন
ইন্টিগ্রিটি টোকেনের জন্য অনুরোধ করা একটি দুই-ধাপের প্রক্রিয়া:
প্রস্তুতি। ইন্টিগ্রিটি সার্ভিসকে সক্রিয় করে এবং একটি সেশন আইডি তৈরি করে।
অনুরোধ। প্রস্তুতি ধাপের সেশন আইডি ব্যবহার করে প্রকৃত স্বাক্ষরিত টোকেনটির জন্য অনুরোধ করা হয়।
public async Task RequestIntegrityTokenAsync() { try { // Replace with your actual Google Cloud Project Number long myCloudProjectNumber = 123456789; // --------------------------------------------------------- // Step 1: Prepare the Token // --------------------------------------------------------- var prepareParams = new PrepareIntegrityTokenParams { CloudProjectNumber = myCloudProjectNumber }; Debug.Log("Preparing Integrity Token..."); var prepareResult = await _integrityClient.PrepareIntegrityTokenAsync(prepareParams); if (!prepareResult.IsOk) { Debug.LogError($"Prepare Failed: {prepareResult.Code} - {prepareResult.ErrorMessage}"); return; } // --------------------------------------------------------- // Step 2: Request the Token // --------------------------------------------------------- // You must use the RequestTokenData returned from the prepare step var requestParams = new RequestIntegrityTokenParams { RequestTokenData = prepareResult.Value.RequestTokenData, // A nonce to bind this token to a specific request or action. // This should be generated by your backend server. RequestHash = "your_secure_nonce_string" }; Debug.Log("Requesting Integrity Token..."); var tokenResult = await _integrityClient.RequestIntegrityTokenAsync(requestParams); if (tokenResult.IsOk) { // The TokenBytes is already a string (Base64 URL-safe web token) string signedToken = tokenResult.Value.TokenBytes; Debug.Log("Integrity Token Received. Sending to backend for verification..."); // Send 'signedToken' to your backend server for verification } else { Debug.LogError($"Request Failed: {tokenResult.Code} - {tokenResult.ErrorMessage}"); } } catch (Exception ex) { Debug.LogException(ex); } }