كيفية تطوير الألعاب للفيسبوك

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

كيفية تطوير الألعاب للفيسبوك

أنت الآن بحاجة إلى تنزيل ActionScript 3 SDK لـ Facebook. ستحتاج إلى ملف graphapi_web_1_0.swc، الذي يجب نسخه إلى المجلد "libs" الخاص بمشروع Flash Builder الخاص بك. التكامل الأساسي بسيط بما فيه الكفاية:

Facebook.init("YourAppID"،loginHandler);

"loginHandler" هي دالة تأخذ كائنين كمعلمات، تسمى "النجاح" و"الفشل". فقط إذا كان اللاعب قد قام بالفعل بتسجيل الدخول إلى Facebook ومنح تطبيقك الإذن بالوصول إلى ملفه الشخصي، فسيتم إرجاع "النجاح"؛ وإلا فستحتاج إلى إجراء مكالمة مباشرة عبر JavaScript:

ExternalInterface.call("إعادة التوجيه"،"YourAppID"، "publish_stream"، " http://apps.facebook.com/YourAppName/”)

يؤدي هذا إلى مطالبة بتسجيل الدخول (إذا لزم الأمر) ثم الحصول على إذن للنشر في موجز أخبار اللاعب. يمكنك في هذه المرحلة أن تطلب أذونات أخرى أيضًا، لكن ضع في اعتبارك أنه كلما طلبت أذونات أكثر، قل عدد الأشخاص الذين سيلعبون اللعبة. سيؤدي هذا بعد ذلك إلى إعادة تشغيل وظيفة Facebook.init أعلاه، والتي ستعيد كائن "success" إلى loginHandler، وكل شيء على ما يرام. بمجرد حصولك على كائن "النجاح"، يمكنك سحب جلسة Facebook التي تم إرجاعها على النحو التالي:

جلسة var: FacebookSession=Facebook.getSession();

يمكنك الآن استرداد المعلومات الأساسية للمستخدم باستخدام خدمة HTTP. ستحتوي خاصية URL الخاصة بخدمة HTTPService على:

http://graph.facebook.com/+session.uid;

خاصية UID الخاصة بجلسة Facebook هي المعرف الفريد للاعب، وإذا كنت تريد كتابة هذا مباشرة في شريط عناوين المتصفح، فسترى بيانات ملفه الشخصي تظهر. باستخدام كائن HTTPService، يمكنك التقاط هذه البيانات في Flex Builder. تعود البيانات بتنسيق JSON، وأسهل طريقة للتعامل مع ذلك هي تنزيل corelib.swc ونسخها إلى مجلد libs الخاص بك.

بمجرد إرجاع البيانات، يمكنك إنشاء كائن يحتوي على جميع معلومات المستخدم عن طريق:

فار بيانات المستخدم: Object=JSON.decode (theString);

سيتم بعد ذلك العثور على الاسم الكامل للمستخدم في userdata.name.

إذن، هذه هي الطريقة التي تستورد بها المعلومات الأساسية. يمكنك أيضًا، على سبيل المثال، النشر على حائط المستخدم من خلال عبارة مثل:

Facebook.ui ("stream.publish"، "iframe"، المعلمات)؛

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

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

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