مصادقة الأنظمة الأساسية لألعاب Android

للوصول إلى وظائف "خدمات ألعاب Google Play"، يجب أن توفّر لعبتك حساب اللاعب الذي تم إثبات هويته. يوضّح هذا المستند كيفية توفير تجربة مصادقة سلسة في لعبتك.

تتضمّن حزمة تطوير البرامج (SDK) لإصدار الثاني من "خدمات ألعاب Play" عددًا من التحسينات التي تزيد عدد المستخدمين الذين تتم مصادقتهم في لعبتك وتسهّل عملية التطوير، وهي:

  • تحسينات للمستخدمين:
    • بعد اختيار حساب تلقائي، يتم إثبات هوية المستخدمين بدون الحاجة إلى التفاعل مع طلب.
    • لم يعُد على المستخدمين تنزيل تطبيق "ألعاب Play" للمصادقة باستخدام "خدمات ألعاب Play" أو إنشاء حساب جديد.
    • يمكن للمستخدمين الآن إدارة حساباتهم على "خدمات ألعاب Play" لألعاب متعددة من صفحة واحدة.
  • تحسينات للمطوّرين:
  • لم يعُد رمز العميل بحاجة إلى التعامل مع عملية المصادقة أو تسجيل الخروج، لأنّه يتم بدء عملية تسجيل الدخول تلقائيًا عند بدء اللعبة، ويتم التعامل مع إدارة الحساب في إعدادات نظام التشغيل.

دمج عميل جديد

يوضّح هذا القسم كيفية إجراء عملية دمج جديدة للعملاء باستخدام الإصدار 2 من خدمة "تسجيل الدخول" في "خدمات ألعاب Play".

إضافة التبعية

أضِف مصدر الاعتمادية الخاص بحزمة تطوير البرامج (SDK) الخاصة "بخدمات ألعاب Play" إلى ملف build.gradle على مستوى الجذر في تطبيقك. إذا كنت تستخدم Gradle، يمكنك إضافة التبعية أو تعديلها على النحو التالي:

dependencies {
 implementation "com.google.android.gms:play-services-games-v2:+"
}

تحديد رقم تعريف المشروع

لإضافة رقم تعريف مشروع حزمة تطوير البرامج (SDK) الخاصة "بخدمات ألعاب Play" إلى تطبيقك، أكمِل الخطوات التالية:

  1. في ملف AndroidManifest.xml الخاص بتطبيقك، أضِف عنصر <meta-data> والسمات التالية إلى عنصر <application>:

    <manifest>
      <application>
        <meta-data android:name="com.google.android.gms.games.APP_ID"
                   android:value="@string/game_services_project_id"/>
      </application>
    </manifest>
    

    حدِّد مرجع مورد السلسلة @string/game_services_project_id باستخدام رقم تعريف مشروع "خدمات الألعاب" في ألعابك كقيمة. يمكنك العثور على معرّف مشروع &quot;خدمات الألعاب&quot; ضمن اسم لعبتك في صفحة الإعدادات على Google Play Console.

  2. في ملف res/values/strings.xml، أضِف مرجعًا لمورد سلسلة واضبط رقم تعريف مشروعك كقيمة. في Google Play Console، يمكنك العثور على معرّف مشروعك ضمن اسم لعبتك في صفحة الإعداد. مثلاً:

    <!-- res/values/strings.xml -->
    <resources>
      <!-- Replace 0000000000 with your game’s project id. Example value shown above.  -->
      <string translatable="false"  name="game_services_project_id"> 0000000000 </string>
    </resources>
    

إعداد حزمة تطوير البرامج (SDK)

يمكنك إعداد حزمة تطوير البرامج (SDK) الخاصة بـ "ألعاب Play" في دالة الاستدعاء onCreate(..) الخاصة بفئة Application.

import com.google.android.gms.games.PlayGamesSdk;

...

@Override
public void onCreate(){
  super.onCreate();
  PlayGamesSdk.initialize(this);
}

الحصول على نتيجة المصادقة

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

لإثبات صحة محاولة المصادقة، اتّصِل بالرقم GamesSignInClient.isAuthenticated() واستخدِم addOnCompleteListener لاسترداد النتائج. مثلاً:

GamesSignInClient gamesSignInClient = PlayGames.getGamesSignInClient(getActivity());

gamesSignInClient.isAuthenticated().addOnCompleteListener(isAuthenticatedTask -> {
  boolean isAuthenticated =
    (isAuthenticatedTask.isSuccessful() &&
     isAuthenticatedTask.getResult().isAuthenticated());

  if (isAuthenticated) {
    // Continue with Play Games Services
  } else {
    // Show a sign-in button to ask players to authenticate. Clicking it should
    // call GamesSignInClient.signIn().
  }
});

إذا اختار المستخدم عدم المصادقة عند تشغيل اللعبة، ننصحك بمواصلة عرض زر يتضمّن رمز "ألعاب Play" أو عرض شاشة تسجيل دخول للمستخدم تتضمّن زرًا يتضمّن رمز "ألعاب Play" كأحد خيارات المصادقة، ومحاولة مصادقة المستخدم مرة أخرى من خلال استدعاء GamesSignInClient.signIn() إذا ضغط المستخدم على الزر. بعد التأكّد من مصادقة المستخدم، يمكنك استرداد معرّف اللاعب لتحديد هوية المستخدم. مثلاً:

PlayGames.getPlayersClient(activity).getCurrentPlayer().addOnCompleteListener(mTask -> {
    // Get PlayerID with mTask.getResult().getPlayerId()
  }
);