Google Play গেম পরিষেবাগুলি ব্যবহার করে ইউনিটিতে প্রমাণীকরণ করুন৷

আপনি ফায়ারবেস এবং ইউনিটিতে তৈরি একটি অ্যান্ড্রয়েড গেমে খেলোয়াড়দের সাইন ইন করতে Google Play গেম পরিষেবাগুলি ব্যবহার করতে পারেন৷ Google Play Games পরিষেবাগুলি ব্যবহার করতে Firebase-এর সাথে সাইন-ইন করুন, প্রথমে Google Play Games-এর মাধ্যমে প্লেয়ারে সাইন-ইন করুন এবং যখন আপনি তা করবেন তখন একটি OAuth 2.0 auth কোডের অনুরোধ করুন৷ তারপর, একটি Firebase শংসাপত্র তৈরি করতে PlayGamesAuthProvider এ অনুমোদন কোডটি পাস করুন, যা আপনি Firebase-এর সাথে প্রমাণীকরণ করতে ব্যবহার করতে পারেন।

তুমি শুরু করার আগে

আপনার ইউনিটি প্রকল্প সেট আপ করুন

  1. আপনার ইউনিটি প্রোজেক্টে Firebase কনফিগারেশন ফাইল এবং Firebase ইউনিটি SDK যোগ করুন যেমন Firebase যোগ করুন আপনার ইউনিটি প্রোজেক্টে বর্ণনা করা হয়েছে। অ্যান্ড্রয়েডের জন্য নির্দেশাবলী অনুসরণ করুন।

    FirebaseAuth.unitypackage আমদানি করতে ভুলবেন না।

  2. ইউনিটি এডিটরে, বিল্ড সেটিংস > প্লেয়ার সেটিংস > অন্যান্য সেটিংসের অধীনে আপনার গেমের অ্যান্ড্রয়েড প্যাকেজের নাম সেট করুন।

  3. তারপরে, বিল্ড সেটিংস > প্লেয়ার সেটিংস > প্রকাশনা সেটিংসের অধীনে, একটি কীস্টোর এবং কী নির্বাচন করুন বা তৈরি করুন, যা আপনার অ্যান্ড্রয়েড প্যাকেজ স্বাক্ষর করতে ব্যবহার করা হবে। আপনার APK অবশ্যই Play Games সাইন-ইন করার জন্য সাইন ইন করতে হবে—এই প্রয়োজনীয়তা শুধুমাত্র প্রকাশের জন্য নয়, আপনার গেমের বিকাশের সময়ও প্রযোজ্য।

আপনার Firebase প্রকল্প সেট আপ করুন

  1. Firebase কনসোলে , Firebase প্রজেক্টে যান যেখানে আপনি আপনার ইউনিটি প্রজেক্ট নিবন্ধন করেছেন।

  2. ইউনিটিতে আপনার সেট করা কী ব্যবহার করে Firebase কনসোলের সেটিংস পৃষ্ঠা থেকে আপনার গেমের SHA-1 ফিঙ্গারপ্রিন্ট সেট করুন।

    আপনি keytool কমান্ডের মাধ্যমে আপনার কীটির SHA-1 ফিঙ্গারপ্রিন্ট পেতে পারেন:

    keytool -exportcert -list -v \
        -alias YOUR-KEY-NAME -keystore PATH-TO-KEYSTORE

    বিকল্পভাবে, আপনি gradle signingReport কমান্ডের মাধ্যমে আপনার স্বাক্ষর শংসাপত্রের SHA হ্যাশ পেতে পারেন:

    gradlew signingReport

    বিকাশের সময় সহ আপনার APK অবশ্যই এই কী দিয়ে স্বাক্ষর করতে হবে৷

  3. একটি সাইন-ইন প্রদানকারী হিসাবে Google Play গেম সক্ষম করুন:

    1. Firebase কনসোলে, প্রমাণীকরণ বিভাগটি খুলুন।

    2. আপনার প্রজেক্টের ওয়েব সার্ভার ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট তৈরি করুন এবং প্রাপ্ত করুন:

      1. সাইন ইন পদ্ধতি ট্যাবের মধ্যে, Google সাইন-ইন প্রদানকারী সক্ষম করুন৷

      2. ওয়েব সার্ভার ক্লায়েন্ট আইডি এবং Google সাইন-ইন প্রদানকারীর গোপনীয়তা অনুলিপি করুন।

    3. সাইন ইন পদ্ধতি ট্যাবের মধ্যে, প্লে গেমস সাইন-ইন প্রদানকারীকে সক্ষম করুন এবং আপনার প্রকল্পের ওয়েব সার্ভার ক্লায়েন্ট আইডি এবং ক্লায়েন্ট গোপনীয়তা নির্দিষ্ট করুন, যা আপনি শেষ ধাপে পেয়েছেন।

আপনার Firebase অ্যাপের তথ্য দিয়ে Play Games পরিষেবা কনফিগার করুন

  1. Google Play Console- এ, আপনার Google Play অ্যাপ খুলুন বা একটি তৈরি করুন।

  2. গ্রো বিভাগে, প্লে গেম পরিষেবাগুলি > সেটআপ এবং পরিচালনা > কনফিগারেশন ক্লিক করুন।

  3. হ্যাঁ ক্লিক করুন, আমার গেম ইতিমধ্যেই Google API ব্যবহার করছে , তালিকা থেকে আপনার ফায়ারবেস প্রকল্প নির্বাচন করুন এবং তারপর ব্যবহার করুন ক্লিক করুন।

  4. প্লে গেমস পরিষেবা কনফিগারেশন পৃষ্ঠায়, শংসাপত্র যোগ করুন ক্লিক করুন।

    1. গেম সার্ভারের ধরন নির্বাচন করুন।
    2. OAuth ক্লায়েন্ট ক্ষেত্রে, আপনার প্রকল্পের ওয়েব ক্লায়েন্ট আইডি নির্বাচন করুন। নিশ্চিত করুন যে এটি সেই একই ক্লায়েন্ট আইডি যা আপনি প্লে গেমস সাইন-ইন সক্ষম করার সময় নির্দিষ্ট করেছেন৷
    3. আপনার পরিবর্তন সংরক্ষণ করুন.
  5. এখনও প্লে গেম পরিষেবা কনফিগারেশন পৃষ্ঠায়, আবার শংসাপত্র যোগ করুন ক্লিক করুন৷

    1. অ্যান্ড্রয়েড টাইপ নির্বাচন করুন।
    2. OAuth ক্লায়েন্ট ক্ষেত্রে, আপনার প্রকল্পের Android ক্লায়েন্ট আইডি নির্বাচন করুন। (আপনি যদি আপনার অ্যান্ড্রয়েড ক্লায়েন্ট আইডি দেখতে না পান তবে নিশ্চিত হন যে আপনি Firebase কনসোলে আপনার গেমের SHA-1 ফিঙ্গারপ্রিন্ট সেট করেছেন।)
    3. আপনার পরিবর্তন সংরক্ষণ করুন.
  6. ইভেন্ট , অ্যাচিভমেন্টস এবং লিডারবোর্ড পৃষ্ঠাগুলিতে, আপনি আপনার গেমের সাথে ব্যবহার করতে চান এমন যেকোন প্লে গেমস সংস্থান তৈরি করুন (যদি আপনি অবিলম্বে ব্যবহার করতে না চান তবে আপনি একটি স্থানধারক এন্ট্রি তৈরি করতে পারেন)। তারপর, যেকোনো ইভেন্ট , অর্জন বা লিডারবোর্ড পৃষ্ঠাগুলিতে, রিসোর্স পান ক্লিক করুন এবং সুবিধাজনক জায়গায় Android রিসোর্স স্নিপেটটি অনুলিপি করুন। Google Play Games পরিষেবা প্লাগইন সেট আপ করার জন্য আপনার স্নিপেটের প্রয়োজন হবে।

    সম্পদ স্নিপেট নিম্নলিখিত উদাহরণ মত দেখায়:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    Google Play game services IDs.
    Save this file as res/values/games-ids.xml in your project.
    -->
    <resources>
      <!-- app_id -->
      <string name="app_id" translatable="false">123456789000</string>
      <!-- package_name -->
      <string name="package_name" translatable="false">com.example.game</string>
      <!-- event Wiped Raid -->
      <string name="event_wiped_raid" translatable="false">CgkIpKjv1a4PEAIYBA</string>
    </resources>
    
  7. পরীক্ষক পৃষ্ঠায়, প্লে স্টোরে রিলিজ করার আগে আপনার গেমটিতে সাইন ইন করতে সক্ষম হওয়া প্রয়োজন এমন যেকোনো ব্যবহারকারীর ইমেল ঠিকানা যোগ করুন।

আপনার গেমে Play Games সাইন-ইন সংহত করুন

  1. ইউনিটির জন্য প্লে গেম প্লাগইনটির সর্বশেষ রিলিজ ডাউনলোড করুন এবং এটি বের করুন।

  2. আপনার ইউনিটি প্রজেক্টে প্লাগইনের ইউনিটি প্যাকেজ আমদানি করুন। রিলিজ আর্কাইভের current-build ডিরেক্টরিতে আপনি ইউনিটি প্যাকেজটি খুঁজে পেতে পারেন।

  3. প্লে গেম প্লাগইন সেট আপ করুন:

    1. অ্যান্ড্রয়েড কনফিগারেশন স্ক্রিন খুলতে উইন্ডো > গুগল প্লে গেমস > সেটআপ > অ্যান্ড্রয়েড সেটআপ ক্লিক করুন।
    2. আপনি Play কনসোল থেকে সম্পদ সংজ্ঞা ক্ষেত্রের মধ্যে Android সম্পদ স্নিপেট পেস্ট করুন.
    3. আপনার ওয়েব সার্ভার ক্লায়েন্ট আইডি পেস্ট করুন, যা আপনি প্রদান করেছিলেন যখন আপনি Firebase কনসোলে Play Games সাইন-ইন সক্ষম করেছিলেন, ক্লায়েন্ট আইডি ক্ষেত্রে।
    4. সেটআপ এ ক্লিক করুন।
  4. আপনার গেমে, RequestServerAuthCode সেটিং সক্ষম করে একটি Play Games ক্লায়েন্ট কনফিগার করুন:

    using GooglePlayGames;
    using GooglePlayGames.BasicApi;
    using UnityEngine.SocialPlatforms;
    using System.Threading.Tasks;
    
    PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
        .RequestServerAuthCode(false /* Don't force refresh */)
        .Build();
    
    PlayGamesPlatform.InitializeInstance(config);
    PlayGamesPlatform.Activate();
    
  5. তারপর, যখন একজন খেলোয়াড় প্লে গেমের সাথে সাইন ইন করতে পছন্দ করে, তখন Social.localUser.Authenticate() কল করুন :

    Social.localUser.Authenticate((bool success) => {
      // handle success or failure
    });
    

Firebase দিয়ে প্রমাণীকরণ করুন

আপনি আপনার গেমে প্লে গেমস সাইন-ইন যোগ করার পরে, আপনি Firebase এর সাথে প্রমাণীকরণ করতে Play Games পরিষেবাগুলি থেকে প্রমাণীকরণ কোড ব্যবহার করতে পারেন৷

  1. প্লে গেমস ব্যবহার করে প্লেয়ার সফলভাবে সাইন ইন করার পরে, সাইন-ইন কন্টিনিউয়েশন হ্যান্ডলারে, প্লেয়ারের অ্যাকাউন্টের জন্য একটি প্রমাণীকরণ কোড পান:

    Social.localUser.Authenticate((bool success) => {
      if (success) {
        authCode = PlayGamesPlatform.Instance.GetServerAuthCode();
      }
    });
    
  2. তারপর, ফায়ারবেস শংসাপত্রের জন্য প্লে গেম পরিষেবাগুলি থেকে প্রমাণীকরণ কোড বিনিময় করুন এবং প্লেয়ারটিকে প্রমাণীকরণ করতে Firebase শংসাপত্র ব্যবহার করুন:

    Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
    Firebase.Auth.Credential credential =
        Firebase.Auth.PlayGamesAuthProvider.GetCredential(authCode);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.UserId);
    });
    

পরবর্তী পদক্ষেপ

একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং তাদের প্লে গেম আইডির সাথে লিঙ্ক করা হয়। এই নতুন অ্যাকাউন্টটি আপনার Firebase প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয়েছে এবং আপনার প্রকল্পের প্রতিটি অ্যাপ জুড়ে একজন ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।

আপনার গেমে, আপনি Firebase.Auth.FirebaseUser অবজেক্ট থেকে ব্যবহারকারীর Firebase UID পেতে পারেন:

Firebase.Auth.FirebaseUser user = auth.CurrentUser;
if (user != null && user.IsValid()) {
  string playerName = user.DisplayName;

  // The user's Id, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server, if you
  // have one; use User.TokenAsync() instead.
  string uid = user.UserId;
}

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

একজন ব্যবহারকারীর প্লে গেম প্লেয়ারের তথ্য পেতে বা প্লে গেম পরিষেবাগুলি অ্যাক্সেস করতে, প্লে গেম প্লাগইন দ্বারা প্রদত্ত API ব্যবহার করুন৷

একজন ব্যবহারকারীকে সাইন আউট করতে, SignOut() কল করুন :

auth.SignOut();