我已按照以下说明进行操作:
在本地启用启用 https 的 Web 服务器 通过 npm 安装 http-server 包
$ npm install -g http-server
通过 openssl 创建私钥和证书。路径需要分配到构建的 fb-instant-games 目录
$ cd fb-instant-games/ $ openssl genrsa 2048 > key.pem $ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem
一旦准备好私钥和证书,就可以通过 SSL 在本地启动 Web 服务。
$ http-server --ssl -c-1 -p 8080 -a 127.0.0.1
使用浏览器打开https://localhost:8080并跳过浏览器显示的安全警告。这一步只是为了让浏览器将上述私钥和证书加入白名单。如果您随后重新生成私钥和证书,则需要再次打开确认。这一步还不能直接预览游戏,因为预览游戏需要初始化Facebook Instant Games SDK。您需要使用以下方法。
在 Facebook 上预览游戏
如果您想使用 Facebook Instant Games SDK 的所有功能,您需要在浏览器中打开: https ://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080 . 注意链接中的 YOUR_GAME_ID。替换您在 Facebook 中创建的申请号。
然后就可以看到游戏运行成功了:
我完全按照。Web 服务器从正确的路径运行。当我导航到 Facebook 为本地嵌入提供的 URL 时,游戏没有初始化。
如果我将 zip 文件上传到 Facebook 主机并从我的手机上玩,游戏初始化很好。当我尝试使用本地测试时,它特别不起作用。如果我导航到 /build/fb-instant-games/ 或https://localhost:8080 ,我在 Chrome 中没有收到任何错误,但是如果我转到https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080
然后我会收到此错误
project.js:1 Uncaught TypeError: Cannot set property
‘string’ of null
at CCClass.start (project.js:1)
at CCClass.eval [as _invoke] (eval at o (cocos2d-js-min.js:1), :3:65)
at CCClass.invoke (cocos2d-js-min.js:1)
at CCClass.startPhase (cocos2d-js-min.js:1)
at e.mainLoop (cocos2d-js-min.js:1)
at t (cocos2d-js-min.js:1)