从facebook加载XMLHttpRequest即时游戏返回空结果,即使我刚刚从服务器获取数据之前就已经保存了数据

时间:2019-02-06 06:31:45

标签: xmlhttprequest fetch backend multiplayer facebook-instant-games

来自服务器的响应返回空结果,尽管仅将数据成功保存在该contextID中较早。大多数情况下,它返回json数据,但有时在它们之间返回导致 createNewGameAsync()函数的空字符串,而不是直接进入 populateFromBackend()函数。我正在通过 https://glitch.com/edit/#!/panoramic-tendency 项目在故障上创建后端。

loadData: function () {
    var contextID = FBInstant.context.getID();
    console.log('loadData from ' + contextID);
    FBInstant.player.getSignedPlayerInfoAsync(contextID)
    .then(function (signedPlayerInfo) {
        var url = 'https://panoramic-tendency.glitch.me' + '/get-match'
        var sig = signedPlayerInfo.getSignature();
        var method = 'POST'
        var payload = { 'signature': sig };
        return req(url, method, payload);
    })
    .then(function (result) {
        if (result.empty) {
            return this.createNewGameAsync();
        } else {
            return Promise.resolve(result.data);
        }
    }.bind(this)).then(function (backendData){  
            this.populateFromBackend(backendData);
    }.bind(this))
    .catch(function (error) {
        this.displayError(error);
    }.bind(this));

1 个答案:

答案 0 :(得分:0)

已解决。我也在数据库中保存了FbInstant.Player.getPhoto()url。在使用getSignedPlayerInfoAsync()进行编码时,生成的签名不是有效格式,并且服务器无法对其进行解码,从而导致空值。

相关问题