فراخوان خدمات بازی های Play را در برنامه خود ادغام کنید

کاربران را به طور یکپارچه وارد بازی خود کنید و در عین حال از سیستم حساب کاربری خود استفاده کنید. با APIهای Recall Services Play Games می‌توانید حساب‌های درون بازی را با یک حساب Google Play Games Services پیوند دهید، سپس وقتی کاربری بازی شما را در دستگاه‌های مختلف (یا همان دستگاه پس از نصب مجدد بازی) انجام می‌دهد، حساب درون بازی پیوند داده شده را جستجو کرده و جریان ورود به سیستم را ساده کنید.

اگر با APIهای Recall اندروید ادغام شده باشید، این APIهای Recall باید آشنا به نظر برسند. هرگونه ادغام سمت سرور با Play Games Services Recall می‌تواند توسط عناوین رایانه شخصی مجدداً مورد استفاده قرار گیرد زیرا در هر دو سیستم عامل اندروید و رایانه شخصی یکسان هستند.

پیش‌نیازها

مرحله 1 : شناسه پروژه Play Games Services خود را در مانیفست اضافه کنید

پس از تکمیل تنظیمات سرویس‌های بازی‌های Play در کنسول Play، بازی شما اکنون یک شناسه پروژه مرتبط با سرویس‌های بازی‌های Play دارد. با استفاده از این شناسه پروژه، که می‌توانید آن را در صفحه پیکربندی سرویس بازی‌های Play در کنسول Play پیدا کنید، manifest.xml بازی خود را به‌روزرسانی کنید.

مثالی از محتویات 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>

مرحله ۲ : درخواست دسترسی مجدد هنگام ورود

وقتی بازی شما در حال مدیریت جریان ورود به سیستم است، مثلاً اضافه کردن یک حساب کاربری درون بازی، با استفاده از GamesRecallClient::RequestRecallAccess() درخواست دسترسی Recall را بدهید.

این فراخوانی یک شناسه جلسه (session ID) را برمی‌گرداند که توسط backend شما برای برقراری فراخوانی‌های سمت سرور به گوگل جهت اتصال و قطع اتصال حساب‌های درون بازی شما با یک کاربر Play Games Services استفاده می‌شود.

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
}

مرحله ۳ : پردازش شناسه جلسه فراخوانی

وقتی بازی شما شناسه جلسه Recall را دریافت کرد و آن را به سرور بازی backend شما ارسال کرد، از APIهای REST سمت سرور Play Games برای موارد زیر استفاده کنید:

  • جستجوی حساب‌های کاربری درون بازی موجود با استفاده از recall.retrieveTokens
  • حساب‌های درون بازی مرتبط را با استفاده از recall.linkPersona اضافه یا به‌روزرسانی کنید
  • حساب‌های کاربری درون بازی لینک‌شده را با استفاده از recall.unlinkPersona حذف کنید

برای راهنمای دقیق‌تر در مورد ادغام سمت سرور، به مستندات مربوط به نحوه استفاده از Recall API در سرور بازی خود مراجعه کنید.