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

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

إذا كنت قد أجريت عملية تكامل مع واجهات برمجة التطبيقات Recall على 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: طلب الوصول إلى ميزة 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
}

الخطوة 3: معالجة رقم تعريف جلسة Recall

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

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

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