首页 > 解决方案 > Facebook 小游戏 api 方法 canSubscribeBotAsync 方法不是函数

问题描述

所以我的游戏希望玩家能够订阅游戏机器人,我正在使用 FBInstant.player.canSubscribeBotAsync() 方法。但是每次,它都会返回一个错误状态

未捕获的类型错误:FBInstant.player.canSubscribeBotAsync 不是函数这是我的代码

FBInstant.player.canSubscribeBotAsync().then(function(yes){
    if(yes){
      FBInstant.player.subscribeBotAsync().then(function(){
        console.log('sub');
      }).catch(function(e)){}
    }
});

我尝试使用 FB 开发人员文档中的此代码

FBInstant.player.canSubscribeBotAsync().then(
  can_subscribe => console.log(can_subscribe)
);

但结果还是一样。

标签: facebookfacebook-javascript-sdkwebhooksfacebook-instant-games

解决方案


似乎我试图让玩家在单击按钮时订阅并出现此错误。但是当我将它从让玩家点击订阅按钮切换到询问玩家何时完成加载游戏时,错误消失了。程序的流程是这样的

window.onload = async () => {
      FBInstant.initializeAsync().then(()=>{
        FBInstant.startGameAsync().then((res)=>{
          FBInstant.player.canSubscribeBotAsync().then((canSub)=>{
            //Ask for sub or something
        }).catch(()=>console.log("Error"))
      })
})

但对我来说,这是一个临时修复,因为通常你应该能够在任何你想要的地方调用一个函数(工作与否不是我的问题),我的问题是我只能在 FBInstant 中调用 FBInstant.player.canSubscribeBotAsync() .initializeAsync() 或 FBInstant.startGameAsync() 但不在它们之外


推荐阅读