Facebook Instant Games, загрузка удаленных изображений во время игры, не работает

Игра подключена, я получаю статус пользователя и все просто готово к работе. Я пытаюсь создать викторину. Я получаю всю информацию с удаленного сервера, которая включает в себя ресурсы изображений на основе вопросов. Я могу получить удаленные данные, но не могу отобразить изображение. Кажется, Facebook их блокирует.

Я попытался добавить заголовок CSP на сервер изображений с расширением Content-Security-Policy: img-src *.fbsbx.com. Также пробовал * до этого. Все это не работает. Единственное, что работает, это загрузить изображение на хостинг facebook.

Информации со стороны Facebook нет. У кого-нибудь здесь есть информация?


person fightbulc    schedule 01.10.2018    source источник
comment
Консоль браузера что-нибудь говорит об изображениях, которые вы пытаетесь загрузить?   -  person misorude    schedule 01.10.2018
comment
@misorude проблема возникает только тогда, когда я тестирую приложение на телефоне. Значит, нет способа увидеть, что происходит, если у вас нет предложения?   -  person fightbulc    schedule 01.10.2018
comment
Означает ли это ужасный встроенный браузер Facebook? Отладка, когда что-то идет не так внутри этого, действительно проблема …; если бы это было в обычном браузере, возможно, вы могли бы выполнять удаленную отладку, подключив телефон к настольному компьютеру. По крайней мере, я бы проверил, что говорят файлы журналов вашего сервера, доступ и ошибка - доходят ли запросы на эти изображения до вашего сервера, и если да, то получают ли они успешный ответ? Может быть, вы немного приблизитесь к выяснению того, что происходит.   -  person misorude    schedule 01.10.2018


Ответы (1)


Основываясь на этом сообщении (Политика безопасности содержимого мгновенных игр), кажется, что Facebook Instant Games блокирует определенные медиафайлы. Хотя они позволяют работать с большими двоичными объектами. Итак, я извлекаю изображение в виде BLOB-объекта и преобразовываю его в объект данных, который можно установить на изображении.

            fetch(imageUrl)
                .then(function (response) {
                    return response.blob();
                })
                .then(function (myBlob) {
                    let myImage = document.getElementById('my-image');
                    myImage.src = URL.createObjectURL(myBlob);
                });
person fightbulc    schedule 01.10.2018