গুগল প্লে গেমস সার্ভিসেস-এর কার্যকারিতা ব্যবহার করার জন্য, আপনার গেমে প্রমাণীকৃত প্লেয়ারের অ্যাকাউন্ট প্রদান করতে হবে। এই ডকুমেন্টেশনে বর্ণনা করা হয়েছে, কীভাবে আপনার গেমে একটি নির্বিঘ্ন প্রমাণীকরণ অভিজ্ঞতা বাস্তবায়ন করা যায়।
প্লে গেমস সার্ভিসেস ভি২ এসডিকে বেশ কিছু উন্নতি নিয়ে এসেছে, যা আপনার গেমে প্রমাণীকৃত ব্যবহারকারীর সংখ্যা বাড়ায় এবং ডেভেলপমেন্টকে আরও সহজ করে তোলে:
- ব্যবহারকারীদের জন্য উন্নতি:
- ডিফল্ট অ্যাকাউন্ট নির্বাচন করার পর, ব্যবহারকারীদের কোনো প্রম্পটের সাথে ইন্টারঅ্যাক্ট করার প্রয়োজন ছাড়াই প্রমাণীকরণ করা হয়।
- প্লে গেমস সার্ভিসে প্রমাণীকরণের জন্য বা নতুন অ্যাকাউন্ট তৈরি করতে ব্যবহারকারীদের আর প্লে গেমস অ্যাপ ডাউনলোড করার প্রয়োজন নেই।
- ব্যবহারকারীরা এখন একটিমাত্র পেজ থেকেই একাধিক গেমের জন্য তাদের প্লে গেমস সার্ভিসেস অ্যাকাউন্টগুলো পরিচালনা করতে পারবেন।
- ডেভেলপারদের জন্য উন্নতি:
- ক্লায়েন্ট কোডকে আর প্রমাণীকরণ বা সাইন-আউট প্রক্রিয়া পরিচালনা করতে হয় না, কারণ গেম শুরু হলেই লগইন স্বয়ংক্রিয়ভাবে চালু হয়ে যায় এবং অ্যাকাউন্ট ব্যবস্থাপনা ওএস সেটিংসে করা হয়।
নতুন ক্লায়েন্ট ইন্টিগ্রেশন
এই বিভাগে দেখানো হয়েছে কিভাবে প্লে গেমস সার্ভিসেস সাইন ইন v2 ব্যবহার করে একটি নতুন ক্লায়েন্ট ইন্টিগ্রেশন করতে হয়।
নির্ভরতা যোগ করুন
আপনার অ্যাপের রুট-লেভেলের build.gradle ফাইলে Play Game Services SDK ডিপেন্ডেন্সিটি যোগ করুন। আপনি যদি Gradle ব্যবহার করেন, তাহলে নিম্নলিখিতভাবে ডিপেন্ডেন্সিটি যোগ বা আপডেট করতে পারেন:
dependencies {
implementation "com.google.android.gms:play-services-games-v2:+"
}
প্রজেক্ট আইডি নির্ধারণ করুন
আপনার অ্যাপে প্লে গেমস সার্ভিসেস এসডিকে প্রজেক্ট আইডি যোগ করতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:
আপনার অ্যাপের
AndroidManifest.xmlফাইলে,<application>এলিমেন্টের মধ্যে নিম্নলিখিত<meta-data>এলিমেন্ট এবং অ্যাট্রিবিউটগুলো যোগ করুন:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>আপনার গেমের গেম সার্ভিসেস প্রজেক্ট আইডি-কে ভ্যালু হিসেবে ব্যবহার করে
@string/game_services_project_idস্ট্রিং রিসোর্স রেফারেন্সটি সংজ্ঞায়িত করুন। আপনার গেম সার্ভিসেস প্রজেক্ট আইডি গুগল প্লে কনসোলের কনফিগারেশন পেজে আপনার গেমের নামের নিচে খুঁজে পাওয়া যাবে।আপনার
res/values/strings.xmlফাইলে, একটি স্ট্রিং রিসোর্স রেফারেন্স যোগ করুন এবং ভ্যালু হিসেবে আপনার প্রজেক্ট আইডি সেট করুন। গুগল প্লে কনসোলের কনফিগারেশন পেজে, আপনি আপনার গেমের নামের নিচে আপনার প্রজেক্ট আইডি খুঁজে পাবেন। উদাহরণস্বরূপ:<!-- res/values/strings.xml --> <resources> <!-- Replace 0000000000 with your game's project id. Example value shown above. --> <string translatable="false" name="game_services_project_id"> 0000000000 </string> </resources>
SDK শুরু করুন
আপনার Application ক্লাসের onCreate(..) কলব্যাকে Play Games SDK চালু করুন।
import com.google.android.gms.games.PlayGamesSdk;
...
@Override
public void onCreate(){
super.onCreate();
PlayGamesSdk.initialize(this);
}
প্রমাণীকরণের ফলাফল পান
আপনার গেম চালু হলে, এটি সর্বদা ব্যবহারকারীকে প্রমাণীকরণের চেষ্টা করবে। ব্যবহারকারীকে প্রমাণীকরণ করতে, আপনাকে প্রথমে যাচাই করতে হবে যে ব্যবহারকারী সফলভাবে প্রমাণীকৃত হয়েছেন এবং তারপরে তার প্লেয়ার আইডি সংগ্রহ করতে হবে।
প্রমাণীকরণের প্রচেষ্টা যাচাই করতে, GamesSignInClient.isAuthenticated() কল করুন এবং ফলাফল পেতে addOnCompleteListener ব্যবহার করুন। উদাহরণস্বরূপ:
GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());
gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
boolean isAuthenticated =
(isAuthenticatedTask.isSuccessful() &&
isAuthenticatedTask.getResult().isAuthenticated());
if (isAuthenticated) {
// Continue with Play Games Services
} else {
// Show a sign-in button to ask players to authenticate. Clicking it should
// call GamesSignInClient.signIn().
}
});
স্বয়ংক্রিয়ভাবে প্রোফাইল তৈরি হওয়া প্রতিরোধ করুন
আপনি ম্যানিফেস্ট ফাইলের মাধ্যমে স্বয়ংক্রিয়ভাবে চালু হওয়া প্রোফাইল তৈরির অনুরোধ নিষ্ক্রিয় করতে পারেন। এর ফলে, যাদের প্লে গেমস সার্ভিসেস প্রোফাইল নেই, তারাও প্রোফাইল তৈরির অনুরোধ ছাড়াই গেমটি লোড করা চালিয়ে যেতে পারেন। আরও তথ্যের জন্য, প্রোফাইল তৈরির বিকল্পসমূহ দেখুন।
এই বৈশিষ্ট্যটি ব্যবহার করতে, নিম্নলিখিত শর্তগুলি পূরণ করা নিশ্চিত করুন:
- ডিভাইসটিতে সাইন ইন করা কোনো গুগল অ্যাকাউন্টেই প্লে গেমস সার্ভিসেস প্রোফাইল নেই।
- আপনার গেমটি প্লে গেমস সার্ভিসেস এসডিকে (Play Games Services SDK)
com.google.android.gms:play-services-games-v2:21.0.0বা তার উচ্চতর সংস্করণের সাথে সমন্বিত।
স্বয়ংক্রিয়ভাবে প্রদর্শিত প্রোফাইল তৈরির অনুরোধ বন্ধ করতে, নিম্নলিখিত ধাপগুলো সম্পন্ন করুন:
AndroidManifest.xmlফাইলে,<meta-data>এলিমেন্টেcom.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONট্যাগটি এবং<application>এলিমেন্টে অ্যাট্রিবিউটগুলো যোগ করুন:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>এই ফ্ল্যাগটিকে 'true' সেট করলে প্লে গেমস সার্ভিসেসকে জানানো হয় যে আপনার গেমই প্রোফাইল তৈরির প্রক্রিয়াটি পরিচালনা করবে। ফলস্বরূপ, ডিভাইসের যেসব ব্যবহারকারীর আগে থেকে কোনো প্লে গেমস সার্ভিসেস প্রোফাইল নেই, তাদের জন্য প্লে গেমস সার্ভিসেস স্বয়ংক্রিয়ভাবে প্রোফাইল তৈরির ইউজার ইন্টারফেসটি প্রদর্শন করবে না।
আপনি যখন কোনো প্লে গেমস সার্ভিসেস এপিআই (Play Games Services API) কল করেন, তখন
GamesClientStatusCodes.SIGN_IN_REQUIREDস্ট্যাটাস কোডটি নির্দেশ করে যে কলটি ব্যর্থ হয়েছে, কারণ প্লে গেমস সার্ভিসেস প্রোফাইল না থাকার কারণে ব্যবহারকারীকে স্বয়ংক্রিয়ভাবে প্রমাণীকরণ করা যায়নি।এর ফলে, যাদের প্লে গেমস সার্ভিসেস প্রোফাইল নেই, তারাও প্রোফাইল তৈরির জন্য তাৎক্ষণিক অনুরোধ ছাড়াই আপনার প্রয়োগ করা প্রমাণীকরণ পদ্ধতিগুলো ব্যবহার করতে পারবেন।
GamesSignInService.signin()কল করার মাধ্যমে প্রোফাইল তৈরি শুরু করা যেতে পারে।import com.google.android.gms.games.PlayGames; ... // Get the achievements client using Play Games services. AchievementsClient achievementsClient = PlayGames.getAchievementsClient(getActivity()); achievementsClient.getAchievementsIntent() .addOnFailureListener( new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { int statusCode = ((ApiException) exception).getStatusCode(); if (statusCode == GamesClientStatusCodes.SIGN_IN_REQUIRED) { // SIGN_IN_REQUIRED: The user needs to sign in with Play Games Services. // Call GamesSignInService.signin() to prompt for // authentication at a suitable time which will trigger the // profile creation UI. // (e.g., after a tutorial). Use GamesSignInService.isAuthenticated() to check auth status. } } });
সাপ্রেশন ট্যাগটি যোগ করার পর, সংযোজনটি যাচাই করতে
logcatউইন্ডো ব্যবহার করুন।logcatআউটপুটে নিম্নলিখিতের মতো একটি বার্তা থাকে: "গেমটি স্বয়ংক্রিয় প্রোফাইল তৈরির প্রম্পট থেকে অপ্ট আউট করেছে (ম্যানিফেস্ট ব্যবহার করে)"।