अपने ऐप्लिकेशन में Play Games Services के Recall को इंटिग्रेट करना

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

अगर आपने Android Recall APIs के साथ इंटिग्रेट किया है, तो आपको इन Recall APIs के बारे में जानकारी होनी चाहिए. Play की गेम सेवाओं के Recall फ़ंक्शन के साथ सर्वर साइड पर किए गए किसी भी इंटिग्रेशन को पीसी पर उपलब्ध गेम फिर से इस्तेमाल कर सकते हैं. ऐसा इसलिए, क्योंकि ये इंटिग्रेशन Android और पीसी, दोनों के लिए एक जैसे होते हैं.

ज़रूरी शर्तें

पहला चरण: मेनिफ़ेस्ट में Play Games Services प्रोजेक्ट का आईडी जोड़ना

Play Console में Play की गेम सेवाओं का सेटअप पूरा करने के बाद, आपके गेम के साथ अब Play की गेम सेवाओं का प्रोजेक्ट आईडी जुड़ गया है. इस प्रोजेक्ट आईडी का इस्तेमाल करके, अपने गेम के manifest.xml को अपडेट करें. यह प्रोजेक्ट आईडी, Play Console में Play Games Services के कॉन्फ़िगरेशन पेज पर मौजूद होता है.

उदाहरण manifest.xml के कॉन्टेंट:

<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
    <Application>
        <PackageName>com.example.package</PackageName>
        <PlayGamesServices>
            <ProjectId>123456789</ProjectId>
        </PlayGamesServices>
    </Application>
</Manifest>

दूसरा चरण: साइन इन करते समय, Recall के ऐक्सेस का अनुरोध करना

जब आपका गेम, साइन-इन फ़्लो को मैनेज कर रहा हो, तब Recall के ऐक्सेस का अनुरोध करें. उदाहरण के लिए, गेम में खाता जोड़ते समय, GamesRecallClient::RequestRecallAccess() का इस्तेमाल करके अनुरोध करें.

इस कॉल से एक सेशन आईडी मिलता है. इसका इस्तेमाल आपका बैकएंड, सर्वर-साइड पर Google को कॉल करने के लिए करता है. इससे, Play की गेम सेवाओं के उपयोगकर्ता के साथ, गेम में मौजूद खातों को लिंक और अनलिंक किया जा सकता है.

auto promise = std::make_shared<std::promise<RecallAccessResult>>();
games_recall_client.RequestRecallAccess(params, [promise](RecallAccessResult result) {
   promise->set_value(std::move(result));
});

auto recall_access_result = promise->get_future().get();
if (recall_access_result.ok()) {
   auto recall_session_id = recall_access_result.value().recall_session_id;
   // Pass the recall session ID to your backend game server so it can query
   // for an existing linked in-game account.
   // - If you discover an existing linked in-game account, continue to sign-in
   //   the in-game account. This provides a seamless cross-device sign-in
   //   experience.
   // - If there is not an existing linked in-game account, when the user
   //   completes the sign-in using your in-game account system record the
   //   account linking with Play Games Services Recall. This helps to provide
   //   a seamless cross-device sign-in experience when the user returns on a
   //   different device or after re-installing your game on the same device.
} else {
   // Handle the error
}

तीसरा चरण: रीकॉल सेशन आईडी को प्रोसेस करना

जब आपके गेम को रीकॉल सेशन आईडी मिल जाए और वह उसे बैकएंड गेम सर्वर को भेज दे, तब Play की गेम सेवाओं के सर्वर-साइड REST API का इस्तेमाल करके ये काम करें:

  • recall.retrieveTokens का इस्तेमाल करके, गेम में लिंक किए गए मौजूदा खातों के बारे में क्वेरी करना
  • recall.linkPersona का इस्तेमाल करके, गेम में लिंक किए गए खाते जोड़ें या अपडेट करें
  • recall.unlinkPersona का इस्तेमाल करके, गेम में लिंक किए गए खाते मिटाना

सर्वर-साइड इंटिग्रेशन के बारे में ज़्यादा जानकारी के लिए, अपने गेम सर्वर में Recall API का इस्तेमाल करने के तरीके से जुड़ा दस्तावेज़ देखें.