প্লে গেম সার্ভিস সাইন-ইন v2-এ মাইগ্রেট করুন

এই নির্দেশিকাটি বর্ণনা করে যে কীভাবে আপনার ক্লায়েন্ট কোড প্লে গেম পরিষেবা v1 থেকে v2 তে স্থানান্তর করতে হয়।

সাইন-ইন সাফল্য বাড়ানোর জন্য নতুন SDK-তে চারটি বড় পরিবর্তন রয়েছে যা আপনার সচেতন হওয়া উচিত:

  1. আপনার গেম চালু হলে সাইন-ইন স্বয়ংক্রিয়ভাবে ট্রিগার হয়। সাইন-ইন করার জন্য GoogleSignIn SDK-এর GoogleSignInClient ব্যবহার করার পরিবর্তে, আপনি স্বয়ংক্রিয় সাইন-ইন প্রচেষ্টার ফলাফল আনতে GamesSignInClient.isAuthenticated() ব্যবহার করতে পারেন৷
  2. ক্লায়েন্ট ফ্যাক্টরি ক্লাসের জন্য আর GoogleSignInAccount অবজেক্ট পাস করার প্রয়োজন হবে না। অতিরিক্ত OAuth স্কোপের অনুরোধ করা যাবে না ( GAMES_LITE স্বয়ংক্রিয়ভাবে অনুরোধ করা হবে)।
  3. Play Games পরিষেবা SDK-এর মধ্যে GamesSignInClient.requestServerSideAccess() ব্যবহার করে প্রমাণীকরণ টোকেনগুলি এখন প্রদান করা হয়।
  4. সাইন আউট পদ্ধতিটি সরানো হয়েছে, এবং প্লে গেম পরিষেবাগুলি থেকে সাইন ইন বা সাইন আউট করার জন্য আমাদের আর একটি ইন-গেম বোতামের প্রয়োজন হবে না৷

উপরন্তু, গেমটি চালু হলে স্বয়ংক্রিয় সাইন-ইন করার কারণে আপনার গেমটি অতিরিক্ত লগইন অনুভব করবে। ফলস্বরূপ, আপনার গেমটি যাতে লগইন অনুরোধের কোটা অতিক্রম না করে তা নিশ্চিত করতে আপনার কোটা ব্যবস্থাপনা পর্যালোচনা করা উচিত।

নতুন SDK Maven সংগ্রহস্থলকে লক্ষ্য করুন

আপনি যদি Gradle বিল্ড সিস্টেম ব্যবহার করেন, তাহলে আপনার মডিউলের build.gradle ফাইলে com.google.android.gms:play-services-games-v2:+ আর্টিফ্যাক্টে আপনার নির্ভরতা পরিবর্তন করে এটি করা যেতে পারে। উদাহরণ স্বরূপ:

dependencies {
 implementation "com.google.android.gms:play-services-games-v2:+"
}

SDK আরম্ভ করুন

আপনার Application ক্লাসের onCreate(..) কলব্যাকে Play Games SDK শুরু করুন৷ উদাহরণ স্বরূপ:

import com.google.android.gms.games.PlayGamesSdk;

...

@Override
public void onCreate(){
  super.onCreate();
  PlayGamesSdk.initialize(this);
}

সাইন-ইন এবং সাইন-আউট কলগুলি সরান৷

আপনি যদি কোনো অতিরিক্ত সুযোগ উল্লেখ না করেন, তাহলে আপনার ব্যবহারের ক্ষেত্রে স্থানান্তর করা সহজ হওয়া উচিত।

  1. GoogleSignIn API ব্যবহার করে সাইন-ইন কলগুলি সরান৷ সাইন-ইন সর্বদা গেম লঞ্চের সময় সঞ্চালিত হবে। পরিবর্তে, GamesSignInClient.isAuthenticated() ব্যবহার করে স্বয়ংক্রিয় সাইন-ইন প্রচেষ্টার ফলাফল শুনুন।

    GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
    
    gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
      boolean isAuthenticated =
        (isAuthenticatedTask.isSuccessful() &&
         isAuthenticatedTask.getResult().isAuthenticated());
    
      if (isAuthenticated) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a
        // login button to ask  players to sign-in. Clicking it should
        // call GamesSignInClient.signIn().
      }
    });
    
  2. সাইন আউট করার জন্য সমস্ত কল সরান, কারণ অ্যাকাউন্ট পরিচালনা এখন OS এবং Play Games অ্যাপ সেটিংসের মধ্যে রয়েছে৷

  3. প্লেয়ার সফলভাবে সাইন ইন করলে, আপনার গেম থেকে Play Games সাইন-ইন বোতামটি সরিয়ে দিন। গেমটি চালু হওয়ার সময় ব্যবহারকারী যদি সাইন ইন না করা বেছে নেন, তাহলে আপনি ঐচ্ছিকভাবে Play Games আইকন সহ একটি বোতাম দেখানো চালিয়ে যেতে এবং GamesSignInClient.signIn() দিয়ে লগইন প্রক্রিয়াটি ট্রিগার করতে পারেন।

  4. ব্যবহারকারী সাইন ইন করেছেন তা যাচাই করার পরে, আপনি ব্যবহারকারীকে সনাক্ত করতে প্লেয়ার আইডি পুনরুদ্ধার করতে পারেন।

    PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
        // Get PlayerID with mTask.getResult().getPlayerId()
      }
    );
    
  5. GoogleSignIn API থেকে আপনার নির্ভরতা সরান, যদি আর ব্যবহার না হয়।

ক্লায়েন্ট শ্রেণীর নাম আপডেট করুন

ক্লায়েন্ট তৈরি করার সময় (যেমন LeaderboardsClient বা AchievementsClient ) Games.getFooClient() PlayGames.getFooClient() () ব্যবহার করুন।

সার্ভার সাইড অ্যাক্সেস অনুরোধ

সার্ভার সাইড অ্যাক্সেসের অনুরোধ করার সময় GoogleSignInAccount.getServerAuthCode() এর পরিবর্তে GamesSignInClient.requestServerSideAccess() ব্যবহার করুন।

GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(this);
gamesSignInClient
  .requestServerSideAccess(OAUTH_2_WEB_CLIENT_ID,
                           /*forceRefreshToken=*/ false)
  .addOnCompleteListener( task -> {
    if (task.isSuccessful()) {
      String serverAuthToken = task.getResult();
      // Send authentication code to the backend game server to be
      // exchanged for an access token and used to verify the
      // player with the Play Games Services REST APIs.
    } else {
      // Failed to retrieve authentication code.
    }
});

অতিরিক্ত সুযোগগুলি সরান

প্লে গেমস পরিষেবা v2 এর সাথে আপনি কোনও অতিরিক্ত সুযোগের অনুরোধ করতে পারবেন না। আপনি যদি এখনও অতিরিক্ত সুযোগের অনুরোধ করতে চান, তাহলে আমরা আপনাকে প্লে গেম পরিষেবাগুলির পাশাপাশি Google সাইন ইন SDK ব্যবহার করার পরামর্শ দিই।

GoogleApiClient থেকে মাইগ্রেশন

পুরানো বিদ্যমান ইন্টিগ্রেশনের জন্য আপনার গেম প্লে গেম পরিষেবা SDK-এর GoogleApiClient API পরিবর্তনের উপর নির্ভর করে। এটি 2017 সালের শেষের দিকে অবনমিত হয়েছিল এবং "সংযোগহীন" ক্লায়েন্টদের দ্বারা প্রতিস্থাপিত হয়েছিল। মাইগ্রেট করতে আপনি GoogleApiClient ক্লাসকে একটি "সংযোগহীন" সমতুল্য দিয়ে প্রতিস্থাপন করতে পারেন। তারপর আপনার গেমটি v1 থেকে v2 তে স্থানান্তর করতে আপনাকে এই পৃষ্ঠার নির্দেশিকা অনুসরণ করতে হবে। এখানে সাধারণ ক্লাসগুলির একটি ম্যাপিং রয়েছে:

com.google.android.gms.games.achievement.Achievements ->
    com.google.android.gms.games.AchievementsClient

com.google.android.gms.games.leaderboard.Leaderboard ->
    com.google.android.gms.games.LeaderboardsClient

com.google.android.gms.games.snapshot.Snapshots ->
    com.google.android.gms.games.SnapshotsClient

com.google.android.gms.games.stats.PlayerStats ->
    com.google.android.gms.games.PlayerStatsClient

com.google.android.gms.games.Players ->
    com.google.android.gms.games.PlayersClient

com.google.android.gms.games.GamesStatusCodes ->
    com.google.android.gms.games.GamesClientStatusCodes