Загрузить XMLHttpRequest с Facebook Мгновенная игра возвращает пустой результат, хотя я только что сохранил данные, прежде чем получить их с сервера

Ответ от сервера возвращает пустой результат, несмотря на успешное сохранение данных ранее в этом contextID. В большинстве случаев он возвращает данные json, но иногда между ними он возвращает пустую строку, ведущую к функции createNewGameAsync(), а не напрямую к функции populateFromBackend(). Я создаю бэкэнд из https://glitch.com/edit/ проекта на глюк.

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 ответ

Решение

Решаемые. Я также сохранял URL базы данных FbInstant.Player.getPhoto(). Во время кодирования с помощью getSignedPlayerInfoAsync() сгенерированная подпись была неправильного формата, и сервер не смог ее декодировать, что привело к нулевому значению.

Другие вопросы по тегам