دمج ميزة Recall في "خدمات ألعاب Play" في تطبيقك

تسجيل دخول المستخدمين إلى لعبتك بسلاسة مع مواصلة استخدام نظام الحسابات الخاص بك باستخدام واجهات برمجة التطبيقات Recall في "خدمات ألعاب Play"، يمكنك ربط الحسابات داخل اللعبة بحساب على "خدمات ألعاب Google Play"، ثم عندما يلعب المستخدم لعبتك على أجهزة مختلفة (أو على الجهاز نفسه بعد إعادة تثبيت اللعبة)، يمكنك طلب الحساب المرتبط داخل اللعبة وتسهيل عملية تسجيل الدخول.

إذا كنت قد نفّذت عملية تكامل مع واجهات برمجة التطبيقات في ميزة "الاسترجاع" على Android، ستكون هذه الواجهات مألوفة لك. يمكن إعادة استخدام أي عمليات دمج من جهة الخادم مع ميزة Recall في "خدمات ألعاب Play" في ألعاب الكمبيوتر لأنّها تكون هي نفسها على كل من Android والكمبيوتر.

المتطلّبات الأساسية

الخطوة 1: إضافة رقم تعريف مشروع "خدمات ألعاب Play" في ملف البيان

بعد إكمال عملية إعداد "خدمات ألعاب Play" في Play Console، سيصبح للعبتك معرّف مشروع مرتبط بـ "خدمات ألعاب Play". باستخدام معرّف المشروع هذا، والذي يمكن العثور عليه في صفحة الإعداد الخاصة بـ "خدمات ألعاب Play" في Play Console، عدِّل 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: طلب الوصول إلى ميزة "استرجاع" عند تسجيل الدخول

عندما تعالج لعبتك عملية تسجيل الدخول، مثل إضافة حساب داخل اللعبة، اطلب إذن الوصول إلى ميزة &quot;استرجاع&quot; باستخدام GamesRecallClient::RequestRecallAccess().

يعرض هذا الطلب معرّف جلسة يستخدمه الخلفية لتقديم طلبات من جهة الخادم إلى Google لربط حساباتك داخل اللعبة بحساب مستخدم على &quot;خدمات ألعاب Play&quot; وإلغاء ربطها.

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: معالجة معرّف جلسة Recall

بعد أن تحصل لعبتك على رقم تعريف جلسة "تسجيل الدخول السريع" وتمرّره إلى خادم اللعبة في الخلفية، استخدِم واجهات REST API من جانب الخادم في "ألعاب Play" لتنفيذ ما يلي:

  • الاستعلام عن حسابات الألعاب المرتبطة الحالية باستخدام recall.retrieveTokens
  • إضافة حسابات مرتبطة داخل اللعبة أو تعديلها باستخدام recall.linkPersona
  • حذف الحسابات المرتبطة داخل اللعبة باستخدام recall.unlinkPersona

للحصول على دليل أكثر تفصيلاً يغطي عملية الدمج من جهة الخادم، اطّلِع على المستندات التي تشرح كيفية استخدام Recall API في خادم اللعبة.