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

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

إذا كنت قد أجريت عملية دمج مع واجهات برمجة تطبيقات Recall API في Android، من المفترض أن تكون واجهات برمجة تطبيقات Recall API هذه مألوفة لك. يمكن إعادة استخدام أي عمليات دمج من جهة الخادم مع ميزة 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: طلب الوصول إلى ميزة "الرجوع" عند تسجيل الدخول

عندما تعالج لعبتك عملية تسجيل الدخول، مثلاً عند إضافة حساب داخل اللعبة، يمكنك طلب إذن الوصول إلى ميزة "الرجوع" باستخدام 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: معالجة معرّف جلسة "الرجوع"

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

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

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