Я пытаюсь создать приложение Facebook Instant HTML5 в React.
Согласно их документации по быстрому запуску, они хотят, чтобы я чтобы установить их SDK с помощью тега script, например:
<script src="https://connect.facebook.net/en_US/fbinstant.6.3.js"></script>
Я создал свое приложение, используя create-react-app
. Я поместил этот фрагмент внутрь /public/index.html
, чтобы он выглядел так:
...
<body>
<noscript>You need to enable javascript to run this app.</noscript>
<script src="https://connect.facebook.net/en_US/fbinstant.6.3.js"></script>
...
Они также предоставляют следующий фрагмент:
// Once all assets are loaded, tells the SDK
// to end loading view and start the game
FBInstant.startGameAsync()
.then(function() {
// Retrieving context and player information can only be done
// once startGameAsync() resolves
var contextId = FBInstant.context.getID();
var contextType = FBInstant.context.getType();
var playerName = FBInstant.player.getName();
var playerPic = FBInstant.player.getPhoto();
var playerId = FBInstant.player.getID();
// Once startGameAsync() resolves it also means the loading view has
// been removed and the user can see the game viewport
game.start();
});
Который я поместил в src/index.tsx'
.
Затем это дает мне ошибки, говоря:
'FBInstant' is not defined no-undef
Это, вероятно, означает, что библиотека не установлена должным образом / не помещена в правильное пространство имен, чтобы мой код React мог получить к ней доступ.
Как я могу обойти это? Facebook говорит мне не загружать и включать его самостоятельно — они отклонят мое приложение.
Важные примечания:
Не загружайте и не добавляйте SDK в свой пакет, так как он будет отклонен на последующих этапах.
Это новый способ создания игр на Facebook, который не поддерживает Graph API.
Так что, похоже, я должен использовать эти теги <script>
. Как я могу заставить React распознать это?