Facebook小游戏对接总结
2019-09-30 本文已影响0人
DanDing
懵新对接时facebook小游戏文档按要求跑流程。账号每次都是在一两天被莫名其妙的上传照片,验证收不到等问题。所有问题都是: vpn的IP不固定,或者不稳定造成的!前期一定要把账号稳定。住!!!
一.代码逻辑:
1.初始化(后面所有接口都在完成后操作)
FBInstant.initializeAsync().then(function () {});
2.平台区分
FBInstant.getPlatform() /**WEB/IOS/ANDROID/MOBILE_WEB*/
3.进度
FBInstant.setLoadingProgress(progress);
4.用户信息
FBInstant.startGameAsync().then(function () {
this.contextId = FBInstant.context.getID();
this.contextType = FBInstant.context.getType();
this.playerName = FBInstant.player.getName();
this.playerPic = FBInstant.player.getPhoto();
this.playerId = FBInstant.player.getID();
});
5.分享
FBInstant.shareAsync({
intent: 'REQUEST',
image: base64,
text: "Come and play together",
data: shareData.data,/**分享额外数据*/
}).then(function () {
});
6.base64处理
Base64: function (src, callback) {
let img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function () {
let canvas = document.createElement('CANVAS');
canvas.height = 533;
canvas.width = 960;
canvas.getContext('2d').drawImage(this, 0, 0, 960, 533);
return callback(canvas.toDataURL());
};
img.src = src;
}
7.广告(插屏,视频基本逻辑差不多) --->下面以插屏广告为例子
/**AdPreloadArray 存放广告Id数组 AdIdArray存放预加载实例化*/
for (var i = 0; i < AdPreloadArray.length; i++) {
this.interstitialAd(AdPreloadArray[i], i);
}
interstitialAd: function (adId, i) {
FBInstant.getInterstitialAdAsync(adId).then(function (interstitial) {
AdIdArray.push(interstitial);
}).then(function () {
}).catch(function (error) {
});
预加载
preload: function (posId, callback) {
console.log("posId===", posId, AdIdArray);
if (AdIdArray.length != 0)
AdIdArray[posId].loadAsync().then(function () {
return callback(true, "Interstitial ready");
}).catch(function (error) {
return callback(false, error.message);
});
},
显示
ShowAd: function (posId, callback) {
if (AdIdArray.length != 0)
AdIdArray[posId].showAsync().then(function () {
return callback(true, "Interstitial watched!");
}).catch(function (error) {
return callback(false, error.message);
});
}
8.上报信息
FBInstant.logEvent(eventName, value, parameters);
9.好友一起耍
var player = FBInstant.player.getName();
FBInstant.context.chooseAsync().then(function () {
FBInstant.updateAsync({
action: "CUSTOM",
cta: "Join Now",
template: "play_with_friends",
text: { default: player + "invited you to play Fantasy Clash" },
image:base64,})
})