从 facebook 即时游戏加载 XMLHttpRequest returns 空结果,即使我刚刚在从服务器获取数据之前保存了数据
Load XMLHttpRequest from facebook Instant game returns empty result, even though I have just saved the data before getting it from server
来自服务器 returns 的响应为空结果,尽管刚刚成功地将数据保存在该 contextID 中。大多数时候它 returns json 数据但有时在它之间 returns 空字符串导致 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));
已解决。我也在数据库中保存了 FbInstant.Player.getPhoto() url。在使用 getSignedPlayerInfoAsync() 进行编码期间,生成的签名格式无效,服务器无法对其进行解码,从而导致空值。
来自服务器 returns 的响应为空结果,尽管刚刚成功地将数据保存在该 contextID 中。大多数时候它 returns json 数据但有时在它之间 returns 空字符串导致 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));
已解决。我也在数据库中保存了 FbInstant.Player.getPhoto() url。在使用 getSignedPlayerInfoAsync() 进行编码期间,生成的签名格式无效,服务器无法对其进行解码,从而导致空值。