FaceBook小游戏
测试、发布和分享小游戏
对于小游戏,您现在可以十分轻松地在本地测试开发版本,自动完成发布流程,以及与团队分享编译版本。本文档会详细说明这些步骤。
通过本地服务器测试游戏
小游戏体验的一大特色就是原生叠加层,这些叠加层会在每个游戏会话前后添加到游戏中。为了促进开发和测试流程,我们支持开发者通过本地服务器运行游戏,提供与玩家在 Facebook 平台中类似的体验。此功能通过嵌入式测试运行工具实现,只需稍加配置即可。
通过 localhost 启用 SSL
嵌入式测试运行工具在 facebook.com 网域下运行,因此仅能通过 https 提供。要在通过 https 提供的页面中嵌入内容,则还需通过 SSL 提供该嵌入式内容。以下步骤将说明如何设置提供安全内容的 localhost 服务器。设置方法有很多种,下文仅介绍其中一种。
- 通过 npm 安装 http-server 包。如果未安装 npm,请遵循 Node.JS 网站中的安装说明。然后,运行以下命令:
> $ npm install -g http-server
- 通过 openssl 创建私钥和证书。这是安全运行本地服务器的必要步骤。
> $ cd path/to/my/game/
> $ openssl genrsa 2048 > key.pem
> $ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem
# Fill out necessary information
- 使用 SSL 从 localhost 运行游戏。密钥和证书准备就绪后,就可使用 SSL 从 localhost 提供游戏。
# Starts to serve via HTTPS, with cache disabled
> $ http-server --ssl -c-1 -p 8080 -a 127.0.0.1
Starting up http-server, serving ./ through https
Available on:
https://127.0.0.1:8080
Hit CTRL-C to stop the server
- 之后,在浏览器中输入 https://localhost:8080,您应能看到游戏正在运行。
请注意:您必须至少尝试进入游戏一次,因为您可能需要确认浏览器显示的安全警告,然后才能继续操作。如果是这种情况,而您跳过这一步,游戏将不会加载。
例如,如果是使用 Chrome,您可能需要访问 chrome://flags/#allow-insecure-localhost 并启用“Allow invalid certificates for resources loaded from localhost.”(允许从 localhost 加载的资源使用无效证书),才能避免浏览器显示警告。
在浏览器中运行嵌入式运行工具
现在,已通过安全连接从 localhost 提供游戏,您可将游戏嵌入到我们的运行工具中。在浏览器中输入以下内容:
https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080
您应看到游戏在小游戏运行工具中运行,如下所示:
请注意:您必须至少在 fb.gg/play/YOUR_GAME_ID上运行过一次游戏,保证嵌入式运行工具正常运作。
出于安全原因,localhost 是唯一支持使用嵌入式测试运行工具执行测试的域。
在特定对话中通过本地服务器运行游戏
您可以在特定环境中通过本地服务器运行游戏。如要实现此操作,使用上文所述的嵌入式运行工具即可。随后您可利用 FBInstant.context 方法(例如 switchAsync()、createAsync() 和 chooseAsync())切换到其他环境。
这样,您便可在对话环境中通过 localhost 有效运行游戏,同时测试您的环境更新是否能正确发送。
上传编译版本
将游戏打包为一个 .zip 文件
小游戏内容在 Facebook 基础架构上托管,因此,您无需自行托管游戏内容或使用第三方服务。在游戏准备就绪以供测试后,将所有游戏文件打包为一个 .zip 文件。请注意,index.html 文件必须位于此归档的根文件夹中,而不能放入任何子文件夹中。您可通过两种方法上传捆绑包:
1.通过开发者网站上传 .zip 文件
要上传 .zip 文件,请点击“应用面板”中小游戏产品的虚拟主机选项卡。在此处点击上传版本,即可将 .zip 文件上传到 Facebook 的托管服务中。
之后,编译版本会处理文件,仅需数秒时间。如果状态更改为“待命”,则表示应用已准备就绪,可供推送到生产环境!
2.通过图谱 API 上传归档文件
您也可以通过图谱 API 调用上传捆绑包。如果有自动化部署系统,这会很有用。要执行此操作,您需前往虚拟主机部分,然后点击顶部的获取素材上传访问口令按钮,以请求上传口令。
借助对话框中的口令,您可向图谱 API 提交以下调用以提交 .zip 文件。请注意,我们特意使用了视频子域,因为该网址已经过配置,可接收大型上传文件。
curl -X POST https://graph-video.facebook.com/{App ID}/assets
-F 'access_token={ASSET UPLOAD ACCESS TOKEN}'
-F 'type=BUNDLE'
-F 'asset=@./{YOUR GAME}.zip'
-F 'comment=Graph API upload'
之后,游戏会在已上传的捆绑包列表中正常显示。您可使用此调用与现有构建系统集成。
托管限制
请牢记,Facebook 托管存在多项限制,其中最重要的是:
- 不支持 php 等服务器端逻辑。
- 上传文件的总大小不得超过 200MB。
- 针对单个应用程序上传的文件数量不得超过 500 个。
详情请参阅虚拟主机文档。
测试上传的编译版本
将编译版本放入生产环境
要在生产环境中测试上传的编译版本,必须先将编译版本放入生产环境中。点击“★”按钮即可将编译版本推送到生产环境。
请注意:
处于生产阶段的编译版本是指将提供给每位游戏玩家的版本。要在生产环境中测试更新,同时又不影响现有游戏人群,您可以构建一个用于测试的版本。这样,系统可以只向应用的开发者和测试者提供此版本。
请注意:请勿使用“创建测试版应用”按钮来为游戏创建测试版应用。对于小游戏,构建一个用于测试的版本才是适当做法。
拥有处于生产阶段的编译版本后,您需要测试该版本,而不是测试在当前本地服务器中运行的编译版本。您可通过以下两种方式中的任意一种完成测试。
1.在 Facebook 中运行游戏
要在动态消息中分享游戏,请点击分享您的游戏部分的分享按钮。此操作可让您在动态消息中分享游戏,并通过任何平台执行测试(台式机、iOS 或 Android)。
2.在 Messenger 中运行游戏
在 Messenger 的小游戏列表中,您和您的团队(在应用中分配到“管理员”、“开发者”或“测试者”身份的用户)应能看到处于开发阶段的所有游戏的列表。此列表名为开发中列表。即使游戏尚未发布,这仍可帮助您在 Messenger 中测试游戏。
3.分享游戏链接
如果已将公共主页与游戏关联,那么您也可以生成可分享的链接。如果您设置了智能助手,用户点击此链接后,系统会在 Messenger 中打开与智能助手的对话,并自动打开游戏。如果未设置智能助手,用户点击链接后将前往您的 Facebook 公共主页,且系统会从该主页自动打开游戏。无论是哪种方式,任何点击链接的用户都应能立即开始游戏。
提交游戏以供应用审核
确认已发布的版本没有问题后,您需要在“应用审核”部分提交游戏以供审核,这样我们的团队便能评估游戏质量及其是否符合我们的开放平台政策。请务必在提交游戏前查看我们的发布检查表,确保游戏符合规定的所有条件。该指南还包含在通过审核后发布游戏的方法说明。
后续步骤
现在,您已了解如何测试和发布游戏,请在提交游戏前查看我们的发布检查清单:小游戏发布检查清单。另请参阅我们的最佳实践部分,了解游戏设计与更新建议。