Hosting Game di Facebook

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.

Game di Facebook di-hosting sebagai portal, konten game sebenarnya di-hosting dari server web Anda sendiri. Dengan mengonfigurasi URL Game Web Facebook, Anda dapat menyediakan game Anda di Facebook.com, yang akan memunculkannya di dalam iframe. Di Facebook, Anda dapat memaksimalkan Pusat Aplikasi dan rekomendasi game agar konten Anda mudah ditemukan, dan menggunakan fitur sosial dari platform Facebook agar game Anda menjadi lebih sosial lagi.

Bagaimana game muncul di Facebook

Di pengaturan aplikasi Anda, ada kolom untuk URL Game Web Facebook. Kolom ini mengonfigurasi iframe yang dimuat ketika pemain memuat game Anda. Dengan demikian, Anda memiliki kendali penuh atas game, dan Anda bebas memperbarui versi serta konten pada siklus rilis Anda sendiri. Lihat Pengaturan Aplikasi di sini.

Ketika pemain di Facebook.com memuat game Anda, Facebook akan membuat permintaan HTTP POST ke URL Game Web Facebook yang disediakan di Pengaturan Aplikasi. Tanggapan terhadap permintaan ini harus berupa tanggapan HTML lengkap yang berisi klien game Anda. Anda dapat menggunakan Facebook SDK untuk JavaScript untuk mengautentikasi pengguna, berinteraksi dengan bingkai, dan mengakses dialog dalam game, jadi pastikan untuk menyertakannya dalam HTML game Anda. Lihat di sini untuk informasi lebih lanjut tentang Login untuk Game di Facebook.

iframe tempat game Anda muncul di Facebook.com

Permintaan HTTP POST yang Anda buat ke URL Game Web Facebook akan berisi parameter tambahan, termasuk parameter signed_request yang berisi identitas Facebook pemain jika mereka telah memberikan izin dasar ke aplikasi Anda. Jika pemain tersebut adalah pemain baru, nilai parameter signed_request akan berguna untuk memvalidasi bahwa permintaan ini memang berasal dari Facebook. Baca selengkapnya tentang permintaan yang ditandatangani di panduan Masuk untuk Game di Facebook.

Persyaratan Domain dan SSL

HTTPS diperlukan saat menelusuri Facebook.com, dan persyaratan ini juga berlaku untuk konten game. Oleh karena itu, sertifikat SSL yang valid diperlukan saat menyajikan konten game Anda. Ketika Anda mengonfigurasi server web untuk meng-hosting game, Anda harus memastikan bahwa game tersebut berada di domain yang valid yang Anda miliki, dan bahwa Anda memiliki sertifikat SSL yang valid untuk domain ini.

Tautan masuk

Anda dapat meneruskan parameter khusus milik Anda sendiri ke kueri peluncuran game. Hal ini berguna untuk melacak kinerja OG Stories, situs rujukan, atau untuk melacak kinerja tautan bersama.

Ada dua cara untuk mencapai hal ini:

  1. Lampirkan parameter kueri ke akhir tautan yang Anda bagikan
  2. Tambahkan tautan relatif di jalur URL game

Parameter Kueri

URL untuk game Facebook Anda akan selalu https://apps.facebook.com/{namespace}/. Saat menyediakan tautan promosi, baik dari Halaman Aplikasi Anda atau tempat lain di internet, Anda dapat melampirkan parameter kueri di sini. Misalnya

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

Parameter kueri ini akan disimpan pada peluncuran game, dan diteruskan ke server Anda selain signed_request.

Anda juga dapat berbagi tautan yang membawa pemain langsung ke bagian game Anda. Jika Anda menggunakan PHP atau memiliki skrip peluncuran, mengarahkan pemain ke area game di luar alur standar dapat membantu Anda. Jalur lengkap akan disimpan dalam permintaan ke server Anda. Misalnya, jika Anda membagikan tautan ke

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

Facebook akan membuat permintaan ke

https://{your_web_games_url}/special_launch.php

saat memuat iframe untuk game Anda.

Memahami Peluncuran Game

Saat pemain meluncurkan game Anda di Facebook, sebuah parameter kueri signed_request ditambahkan pada permintaan HTTP ke server Anda. signed_request ini dapat didekode untuk menyediakan informasi pengguna, dan tanda tangan untuk memverifikasi keamanan serta keaslian data ini. Anda dapat mem-parsing parameter seperti ini:

  1. Pisahkan permintaan yang ditandatangani menjadi dua bagian yang dipisahkan dengan karakter '.' (misalnya: 238fsdfsd.oijdoifjsidf899)
  2. Dekode bagian pertama - tanda tangan yang dienkode - dari base64url
  3. Dekode bagian kedua - payload - dari base64url kemudian dekode objek JSON yang dihasilkan

Jika tidak ada kolom user_id, maka pemain belum memberikan izin public_profile untuk game Anda.

Alur Pengguna Baru

Jika Anda mem-parsing signed_request dan menemukan bahwa pemain tersebut masih baru dan belum memberikan izin dasar untuk game, Anda dapat meminta izin ini saat game dimuat, melalui Javascript SDK.

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

Anda bisa meminta izin lainnya, seperti email, dengan menambahkannya sebagai parameter kedua.

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

Informasi penting lainnya dalam payload ini adalah pengaturan usia dan preferensi locale untuk pemain. Lihat Login untuk Game di Facebook untuk informasi lebih lanjut.

Praktik Terbaik

Pengembangan pada mesin lokal

Ketika Anda mengembangkan game, Anda mungkin ingin meng-hosting-nya di server web yang berjalan di mesin lokal untuk mempercepat siklus edit-kompilasi-tes. Cara yang paling umum untuk melakukannya adalah dengan menyiapkan tumpukan server seperti XAMPP. Anda juga perlu membuat dan menginstal sertifikat SSL lokal sehingga server ini mendukung HTTPS.

Pindah ke server produksi

Setelah Anda siap untuk meluncurkan game, Anda harus mengatur hosting pada server web yang dapat diakses publik.

Meningkatkan kinerja hosting dengan CDN

Seiring dengan pertumbuhan traffic, Anda mungkin perlu mempertimbangkan untuk menggunakan jaringan pengiriman konten (CDN) seperti Akamai atau CDNetworks untuk mengurangi biaya hosting Anda dan meningkatkan kinerja. CDN bekerja dengan melakukan caching konten game Anda di berbagai lokasi di internet. Hal ini berarti pemain akan mengirimkan aset game ke klien mereka dari lokasi yang lebih dekat. Para pemain Anda dapat memuat game lebih cepat, dan server Anda terlindungi dari traffic yang berlebihan.