A:获取facebook的玩家基本信息
var playerID = FBInstant.player.getID(); // 玩家ID
var playerName = FBInstant.player.getName(); // 玩家名称
var pic = FBInstant.player.getPhoto(); // 玩家头像
B: 分享
getImgBase64 (_texture) {
let target = cc.find('Canvas');
let width = 600, height = 315;
let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d');
canvas.width = width;
canvas.height = height;
let image = _texture.getHtmlElementObj();
ctx.drawImage(image, 0, 0);
return canvas.toDataURL('image/png');
},
Share(){
var self = this
cc.loader.loadRes("share_1.png",function(err, texture){
FBInstant.shareAsync({
intent: 'SHARE',
image: self.getImgBase64(texture),
text: 'Hot Pot War',
data: { myReplayData: ''+Config.sdkuid },
}).then(function () {
console.log('分享成功');
});
})
},
C:测试
mac 下的 cocos creator facebook 接入
下载并安装node-v8.12.0
- 首先打开命令行窗口,进入构建好的 fb-instant-games 目录,通过 npm 安装 http-server 包:
$ cd fb-instant-games
$ npm install -g http-server
报错:
npm ERR! path /usr/local/lib/node_modules
解决:
sudo npm install -g http-server
- 接着通过 openssl 创建私钥和证书:
$ 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 后台创建的应用编号。