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