استضافة الألعاب على فيسبوك

The Web Games on Facebook and Facebook Gameroom platforms are no longer available for new submissions. This documentation is intended solely for developers with existing games. To learn more, read our blog post.

تتم استضافة الألعاب على فيسبوك كبوابة، ومحتوى اللعبة الفعلي تتم استضافته من خادم الويب. وعن طريق تكوين عنوان URL لألعاب الويب، يمكنك توفير اللعبة على Facebook.com حيث ستظهر ضمن iframe. كما يمكنك تحقيق أقصى استفادة من مركز التطبيقات وتوصيات الألعاب على فيسبوك لتسهيل إمكانية اكتشاف المحتوى الذي توفره، واستخدام ميزات التواصل الاجتماعي لمنصة فيسبوك لجعل لعبتك اجتماعية بشكل أكبر.

شكل الألعاب على فيسبوك

في إعدادات التطبيق، يتوفر حقل لعنوان URL لألعاب الويب على فيسبوك. يقوم هذا الحقل بتكوين iframe والذي يتم تحميله عندما يبدأ اللاعب تحميل اللعبة. وهذا يمنحك التحكم الكامل في اللعبة وتكون لديك حرية تحديث الإصدارات والمحتوى في دورة طرح التطبيق من جانبك. راجع إعدادات التطبيق هنا.

عندما يقوم لاعب ما على Facebook.com بتحميل اللعبة، سيعمل فيسبوك على إرسال طلب HTTP POST إلى عنوان URL ألعاب الويب على فيسبوك المتوفرة ضمن "إعدادات التطبيق". يجب أن تكون الاستجابة لهذا الطلب في صورة استجابة HTML كاملة تتضمن برنامج اللعبة. يمكنك استخدام مجموعة Facebook SDK للغة JavaScript لمصادقة المستخدمين والتفاعل مع الإطار والوصول إلى مربعات الحوار داخل اللعبة، لذا، احرص على تضمين ذلك في رمز HTML اللعبة. راجع هنا لمزيد من المعلومات حول تسجيل الدخول للألعاب على فيسبوك.

صورة لإطار iframe حيث تظهر اللعبة على Facebook.com

سيحتوي طلب HTTP POST الذي تم إرساله إلى عنوان URL ألعاب الويب على فيسبوك على معلمات إضافية، بما في ذلك معلمة signed_request التي تحتوي على هوية اللاعب في فيسبوك إذا تم منح الأذونات الأساسية للتطبيق. إذا كان اللاعب جديدًا، فستكون قيمة المعلمة signed_request مفيدة للتحقق من أنه تم الحصول على هذا الطلب بالفعل من جانب فيسبوك. يمكنك قراءة المزيد حول الطلبات الموقعة في دليل تسجيل الدخول للألعاب على فيسبوك.

متطلبات النطاقات وSSL

يلزم توفير HTTPS عند تصفح Facebook.com وهذا المطلب ينطبق أيضًا على محتوى اللعبة. لذلك يتعين توفير شهادة SSL صالحة عند عرض محتوى اللعبة. عند تكوين خادم الويب لاستضافة اللعبة، ستحتاج إلى التأكد من تواجده على نطاق صالح تملكه ومن وجود شهادة SSL صالحة لهذا النطاق.

الروابط الواردة

من الممكن إرسال المعلمات المخصصة من جانبك إلى استعلام تشغيل اللعبة. ويُعد هذا مفيدًا لتتبع أداء قصص OG Stories أو مواقع الإحالة أو لتتبع أداء الرابط الذي تتم مشاركته.

توجد طريقتان لتحقيق ذلك:

  1. إلحاق معلمات الاستعلام بنهاية الرابط الذي تتم مشاركته
  2. إضافة الروابط ذات الصلة في مسار عنوان URL اللعبة

معلمات الاستعلام

سيكون عنوان URL للعبتك على فيسبوك دائمًا https://apps.facebook.com/{namespace}/ . عند توفير روابط ترويجية، من صفحة التطبيق أو أماكن أخرى على الإنترنت، يمكنك إلحاق معلمات الاستعلام هنا. على سبيل المثال

https://apps.facebook.com/{namespace}/?source=mysourceid

سيتم حفظ معلمات الاستعلام هذه عند تشغيل اللعبة، وإرسالها إلى الخادم بالإضافة إلى signed_request.

يمكنك أيضًا مشاركة الروابط التي تنقل اللاعبين مباشرةً إلى أجزاء محددة داخل اللعبة. إذا كنت تستخدم PHP أو لديك برامج نصية للتشغيل، فقد يكون ذلك مفيدًا لجعل تجربة اللاعبين تبدأ في مناطق محددة من اللعبة بعيدًا عن المراحل القياسية. سيتم حفظ المسار بالكامل في الطلب الذي يتم إرساله إلى الخادم. على سبيل المثال، إذا كنت تشارك رابطًا إلى

https://apps.facebook.com/{namespace}/special_launch.php

فسيقوم فيسبوك بإرسال طلب إلى

https://{your_web_games_url}/special_launch.php

عند تحميل إطار iframe الخاص باللعبة.

فهم كيفية تشغيل اللعبة

عندما يبدأ اللاعبون تشغيل اللعبة على فيسبوك، تتم إضافة معلمة الاستعلام signed_request إلى طلب HTTP الذي يتم إرساله إلى الخادم. ويمكن فك تشفير signed_request هذا لتوفير معلومات المستخدم وتوقيع للتحقق من أمان هذه البيانات ومصداقيتها. يمكنك تحليل هذه المعلمة على النحو التالي:

  1. تقسيم الطلب الموقّع إلى جزأين يفصل بينهما حرف "." (مثل، 238fsdfsd.oijdoifjsidf899)
  2. فك ترميز الجزء الأول - التوقيع المشفر - من base64url
  3. فك تشفير الجزء الثاني - حمولة البيانات - من base64url، ثم فك تشفير كائن JSON الناتج

إذا لم يكن هناك حقل user_id، فهذا يعني عدم منح اللاعب أذونات public_profile للعبة بعد.

دفق المستخدم الجديد

إذا قمت بتحليل signed_request واكتشفت أن اللاعب جديد ولم يمنح الأذونات الأساسية للعبة، فيمكنك طلب هذه الأذونات عند التحميل، عبر مجموعة SDK للغة Javascript.

FB.login(function(response){
  // Handle the response
});

يمكنك طلب المزيد من الأذونات اختياريًا، مثل email، عن طريق إضافتها كمعلمة ثانية.

FB.login(function(response) {
  // Handle the response
}, {scope: 'email'});

ستكون المعلومات المهمة الأخرى المتوفرة في حمولة البيانات هذه، عبارة عن إعدادات العمر والتفضيلات المحلية للاعب. راجع تسجيل الدخول للألعاب على فيسبوك لمزيد من المعلومات.

أفضل الممارسات

التطوير على جهاز محلي

أثناء تطوير اللعبة، على الأرجح سترغب في استضافتها على خادم ويب يعمل على الجهاز المحلي لتسريع دورة التعديل والتحويل البرمجي والاختبار. وتتمثل الطريقة الأكثر شيوعًا لإجراء ذلك في إعداد مكدس خادم مثل XAMPP. ستحتاج أيضًا إلى إنشاء شهادة SSL محلية وتثبيتها حتى يتمكن هذا الخادم من دعم HTTPS.

الانتقال إلى خادم الإنتاج

بمجرد أن تصبح مستعدًا لطرح اللعبة عالميًا، ستحتاج إلى ترتيب الاستضافة على خادم ويب متوفر للعامة.

تحسين أداء الاستضافة باستخدام CDN

بالتزامن مع زيادة الزيارات، قد تفكر في استخدام شبكة توصيل المحتوى (CDN) مثل Akamai أو CDNetworks لتقليل تكاليف الاستضافة وتحسين الأداء. تعمل شبكة CDN على تخزين محتوى اللعبة مؤقتًا في مواقع متعددة على الإنترنت. وهذا يعني توصيل أصول اللعبة إلى العميل من موقع أقرب. وسيحصل اللاعبون على تحميل أسرع للعبة، وستتم حماية الخادم من الزيارات الزائدة.