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

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

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

پیش نیازها

مرحله ۱ : شناسه پروژه خدمات بازی‌های Play خود را در مانیفست اضافه کنید

پس از تکمیل راه‌اندازی خدمات بازی‌های 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>

مرحله 2 : هنگام ورود به سیستم درخواست دسترسی فراخوان دهید

هنگامی که بازی شما یک جریان ورود به سیستم را مدیریت می کند، به عنوان مثال یک حساب درون بازی اضافه می کند، با استفاده از 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
}

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

هنگامی که بازی شما شناسه جلسه فراخوان را داشت و آن را به سرور بازی باطن شما ارسال کرد، از APIهای REST سمت سرور بازی‌های Play استفاده کنید تا:

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

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