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

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

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

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

Play की गेम सेवाओं के साइन इन वर्शन 2 में नया क्लाइंट इंटिग्रेशन

इस सेक्शन में, Play की गेम सेवाओं के साइन इन वर्शन 2 की मदद से नए क्लाइंट को इंटिग्रेट करने का तरीका बताया गया है.

Play की गेम सेवाओं के SDK टूल पर डिपेंडेंसी जोड़ना

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

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

Play की गेम सेवाओं का प्रोजेक्ट आईडी तय करें

अपने ऐप्लिकेशन में Play की गेम सेवाओं के 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 के बारे में बताएं. आपका गेम सेवाओं का प्रोजेक्ट आईडी, 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);
}

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

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

साइन इन करने की कोशिश की पुष्टि करने के लिए, 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() को कॉल करके दोबारा साइन इन करने का विकल्प भी चुना जा सकता है.

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

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