Android गेम के लिए साइन इन करें

Google Play Games Services की सुविधाओं को ऐक्सेस करने के लिए, आपके गेम में साइन इन करने वाले खिलाड़ी का खाता होना चाहिए. इस दस्तावेज़ में, अपने गेम में आसानी से साइन-इन करने की सुविधा लागू करने का तरीका बताया गया है.

Play Games Services v2 SDK टूल में कई सुधार किए गए हैं. इनसे आपके गेम में साइन इन करने वाले उपयोगकर्ताओं की संख्या बढ़ती है और गेम को डेवलप करना आसान हो जाता है:

  • उपयोगकर्ताओं के लिए सुधार:
    • डिफ़ॉल्ट खाता चुनने के बाद, उपयोगकर्ताओं को किसी प्रॉम्प्ट के साथ इंटरैक्ट किए बिना लॉग इन कर दिया जाता है.
    • अब उपयोगकर्ताओं को Play Games Services में साइन इन करने या नया खाता बनाने के लिए, Play Games ऐप्लिकेशन डाउनलोड करने की ज़रूरत नहीं है.
    • उपयोगकर्ता अब एक ही पेज से, कई गेम के लिए अपने Play Games Services खाते मैनेज कर सकते हैं.
  • डेवलपर के लिए सुधार:
    • क्लाइंट कोड को अब साइन-इन या साइन-आउट फ़्लो को मैनेज करने की ज़रूरत नहीं है, क्योंकि गेम शुरू होने पर लॉगिन अपने-आप ट्रिगर हो जाता है और खाता मैनेजमेंट, ओएस की सेटिंग में मैनेज किया जाता है.

नया क्लाइंट इंटिग्रेशन

इस सेक्शन में, Play Games Services के साइन इन v2 के साथ नया क्लाइंट इंटिग्रेशन करने का तरीका बताया गया है.

डिपेंडेंसी जोड़ना

अपने ऐप्लिकेशन के रूट-लेवल वाली build.gradle फ़ाइल में, Play Games Services SDK टूल की डिपेंडेंसी जोड़ें. अगर Gradle का इस्तेमाल किया जा रहा है, तो डिपेंडेंसी को इस तरह जोड़ा या अपडेट किया जा सकता है:

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

प्रोजेक्ट आईडी तय करना

अपने ऐप्लिकेशन में Play Games Services SDK टूल का प्रोजेक्ट आईडी जोड़ने के लिए, यह तरीका अपनाएं:

  1. अपने ऐप्लिकेशन की 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 को तय करें. इसके लिए, अपने गेम के Play Games की सेवाओं के प्रोजेक्ट आईडी को वैल्यू के तौर पर इस्तेमाल करें. Games services का प्रोजेक्ट आईडी, Google Play Console पर कॉन्फ़िगरेशन पेज में, गेम के नाम के नीचे देखा जा सकता है.

  2. अपनी res/values/strings.xml फ़ाइल में, स्ट्रिंग रिसॉर्स का रेफ़रंस जोड़ें और वैल्यू के तौर पर अपना प्रोजेक्ट आईडी सेट करें. Google Play Console में, कॉन्फ़िगरेशन पेज पर अपने गेम के नाम के नीचे, प्रोजेक्ट आईडी देखा जा सकता है. उदाहरण के लिए:

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

साइन इन का नतीजा पाना

आपका गेम लॉन्च होने पर, वह हमेशा उपयोगकर्ता को साइन इन करने की कोशिश करेगा. उपयोगकर्ता की पुष्टि करने के लिए, आपको यह पुष्टि करनी होगी कि उपयोगकर्ता ने साइन इन किया है. इसके बाद, उसका Player आईडी पाएं.

साइन इन की कोशिश की पुष्टि करने के लिए, 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 {
    // Disable your integration with Play Games Services or show a
    // login button to ask  players to sign-in. Clicking it should
    // call GamesSignInClient.signIn().
  }
});

अगर गेम लॉन्च होने पर उपयोगकर्ता साइन इन नहीं करता है, तो आपके पास Play Games आइकॉन वाला बटन दिखाना जारी रखने का विकल्प होता है. साथ ही, अगर उपयोगकर्ता बटन दबाता है, तो GamesSignInClient.signIn() को कॉल करके, उपयोगकर्ता को फिर से साइन इन करने के लिए कहा जा सकता है.

उपयोगकर्ता के साइन इन होने की पुष्टि करने के बाद, उपयोगकर्ता की पहचान करने के लिए Player ID हासिल किया जा सकता है. उदाहरण के लिए:

PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
    // Get PlayerID with mTask.getResult().getPlayerId()
  }
);