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.
Facebook 遊戲平台是作為入口網站代管,實際的遊戲內容是來由您本身的網頁伺服器代管。透過配置 Facebook 網頁遊戲網址,您可以在 Facebook.com 上提供遊戲,有關遊戲會在 iframe 內顯示。您可以在 Facebook 上發揮應用程式中心和遊戲推薦的最大效用,讓用戶發掘您的內容;您亦可使用 Facebook 平台的社交功能,來為遊戲帶來更多社交元素。
您應用程式的設定中有 Facebook 網頁遊戲網址的欄位。玩家載入您的遊戲時,此欄位會配置載入的 iframe。這讓您能夠全盤控制自己的遊戲,而您亦可以按照自己的發佈周期隨心更新版本和內容。在此查看您的「應用程式設定」。
玩家在 Facebook.com 載入您的遊戲時,Facebook 會向「應用程式設定」之下提供的 Facebook 網頁遊戲網址發出 HTTP POST
要求。這個要求的回覆應為包含您遊戲用戶端的完整 HTML 回覆。您可以使用 Facebook JavaScript SDK 來驗證用戶、與框架互動和存取遊戲內的對話框,因此請確保遊戲的 HTML 有包含相關內容。查看此處以進一步了解 Facebook 遊戲平台登入。
向 Facebook 網頁遊戲網址發出的 HTTP POST 要求會包含其他參數,其中包括 signed_request
參數,此參數包含已向您應用程式授予基本權限的玩家之 Facebook 身分。如果是新玩家,signed_request
參數值可以有效驗證此要求確實來自 Facebook。閱讀 Facebook 遊戲平台登入指南,進一步了解登入要求。
瀏覽 Facebook.com 時需要使用 HTTPS,而這項要求亦同樣適用於遊戲內容。因此在提供遊戲內容時,必須具備有效 SSL 證書。在您配置網絡伺服器以代管遊戲時,您需要確保伺服器位於由您擁有的有效網域上,而且您擁有此網域的有效 SSL 證書。
您可以將自己的自訂參數傳送給遊戲啟動查詢。這可以有效追蹤 OG 動態的成效、轉介網站或分享連結的成效。
您可採用 2 種做法:
您 Facebook 遊戲的網址一律會顯示為 https://apps.facebook.com/{namespace}/。在應用程式頁面或互聯網上其他地方提供推廣活動連結時,您可在此附加查詢參數,例如:
https://apps.facebook.com/{namespace}/?source=mysourceid
這些查詢參數會在遊戲啟動時保留,並會和 signed_request 一同傳送到您的伺服器。
您亦可以分享連結來直接將玩家帶到您遊戲的部分內容。如果您正在使用 PHP 或有啟動指令碼,這可有助玩家跳脫標準流程,直接在某些遊戲部分中開始。完整路徑會保留在傳送給您伺服器的要求中。舉例來說,如果您向以下網址傳送連結:
https://apps.facebook.com/{namespace}/special_launch.php
Facebook 便會向以下網址發出要求:
https://{your_web_games_url}/special_launch.php
有關要求會在為您的遊戲載入 iframe 時發出。
玩家在 Facebook 啟動您的遊戲時,附加了查詢參數 signed_request
的 HTTP 要求會傳送至您的伺服器。您可將此 signed_request
解碼以取得用戶資訊,以及用於驗證此資料安全和真偽的簽名。您可以用以下方式剖析這項參數:
238fsdfsd.oijdoifjsidf899
)如果沒有 user_id
欄位,則代表玩家尚未向您的遊戲授予 public_profile 權限。
如您剖析 signed_request
後發現用戶為新玩家,且尚未向您的遊戲授予基本權限,您可經由 Javascript SDK,在載入時向相關玩家要求取得這些權限。
FB.login(function(response){ // Handle the response });
您可將所需的權限加為第二參數,以此選擇要求取得更多權限,例如 email
。
FB.login(function(response) { // Handle the response }, {scope: 'email'});
此裝載內的其他重要資訊包括玩家的年齡設定和地區偏好設定。詳情請查看 Facebook 遊戲平台登入。
開發遊戲時,您可能想在本機上執行的網頁伺服器代管遊戲,以加快編輯、編譯和測試程序的速度。最普遍的做法是設定一個類似 XAMPP 的伺服器堆疊。您亦會需要建立和安裝本地 SSL 證書,讓此伺服器支援 HTTPS。
一旦您準備好上架遊戲供公眾暢玩,便需要安排在向公眾提供的網頁伺服器上代管遊戲的事宜。
隨著流量增加,您可能需要考慮使用 Akamai 或 CDNetworks 等內容傳遞網絡,以減少代管成本並改善成效。內容傳遞網絡的運作模式是在互聯網上不同地點快取您遊戲的內容。換言之,玩家會收到從較近地點送達至其用戶端的遊戲素材。這樣玩家的遊戲載入時間便會較短,而您的伺服器亦不會受到過多流量的影響。