Con los juegos instantáneos, es muy fácil probar tu versión de desarrollo de forma local, automatizar la publicación y compartir la compilación con tu equipo. En este documento, se explican estos pasos en detalle.
Gran parte de la experiencia de los juegos instantáneos proviene de las superposiciones nativas, que se agregan al juego antes y después de cada sesión. Para facilitar el flujo de trabajo de desarrollo y prueba, permitimos a los desarrollados que ejecuten el juego desde un servidor local con una experiencia muy similar a la que sus jugadores verán en nuestra plataforma. Esto se logra mediante nuestro reproductor de prueba insertado, que requiere una mínima configuración.
Dado que nuestro reproductor de prueba insertado funciona en el dominio facebook.com
, solo se puede mostrar mediante https
. Para insertar contenido en una página que se muestra mediante https
, el contenido insertado también se debe mostrar mediante SSL. En los próximos pasos, te explicaremos cómo configurar un servidor localhost
que muestra contenido seguro. A continuación, incluimos una opción, pero hay muchas soluciones posibles para permitir este comportamiento.
http-server
mediante npm
. Si no instalaste npm
, sigue las instrucciones de instalación en el sitio web de Node.JS. Luego, ejecuta el siguiente comando:> $ npm install -g http-server
openssl
. Esto es necesario para ejecutar el servidor local seguro.> $ cd path/to/my/game/ > $ openssl genrsa 2048 > key.pem > $ openssl req -x509 -days 1000 -new -key key.pem -out cert.pem # Fill out necessary information
# Starts to serve via HTTPS, with cache disabled > $ http-server --ssl -c-1 -p 8080 -a 127.0.0.1 Starting up http-server, serving ./ through https Available on: https://127.0.0.1:8080 Hit CTRL-C to stop the server
https://localhost:8080
para ver el juego en ejecución.Nota: Debes acceder a él al menos una vez, ya que quizá debas aprobar una advertencia de seguridad desde tu navegador para continuar. Si fuera así y omites este paso, el juego no se cargará.
Por ejemplo, en Chrome, es posible que debas acceder a chrome://flags/#allow-insecure-localhost
y activar "Permitir certificados no válidos para recursos cargados desde localhost" para eliminar la advertencia.
Ahora que el juego se muestra desde localhost mediante una conexión segura, puedes insertarlo en nuestro reproductor. Dirige el navegador a esta dirección:
https://www.facebook.com/embed/instantgames/YOUR_GAME_ID/player?game_url=https://localhost:8080
Deberías ver tu juego en ejecución en el reproductor de juegos instantáneos, como se muestra aquí:
Nota: Es necesario que hayas jugado tu juego al menos una vez en fb.gg/play/YOUR_GAME_ID
para que el reproductor insertado funcione correctamente.
A esta altura, debes poder usar todas las funciones del SDK para juegos instantáneos, desde el juego que se ejecuta en tu servidor local.
Por motivos de seguridad, localhost
es el único dominio admitido para pruebas con el reproductor de pruebas insertado.
Puedes ejecutar el juego desde tu servidor local en un contexto específico. Para esto, usa simplemente el reproductor insertado, como se explicó con anterioridad. Luego, puedes usar los métodos FBInstant.context
(por ejemplo, switchAsync()
, createAsync()
y chooseAsync()
) para cambiar a contextos diferentes.
De esta manera, puedes jugar eficazmente desde localhost
en un contexto de conversación y probar si las actualizaciones del contexto se envían correctamente.
El contenido de los juegos instantáneos se aloja en la infraestructura de Facebook, de modo que no necesitas alojar el contenido del juego por tu cuenta ni usar servicios de terceros. Una vez que el juego esté listo para probarse, comprime todos los archivos del juego en un único archivo .zip. Ten en cuenta que el archivo index.html
debe estar en el directorio raíz de este archivo y no en una subcarpeta. Hay dos formas de subir el paquete:
Para subir el archivo .zip, haz clic en la pestaña Alojamiento web del producto Juegos instantáneos en el panel de apps. Allí, haz clic en Subir versión, que te permitirá subir el archivo .zip al servicio de alojamiento de Facebook.
A continuación, la compilación procesará el archivo. Se espera que este proceso solo tarde unos segundos. Cuando el estado cambia a "Modo de espera", la app está lista para pasar a producción.
De forma alternativa, puedes subir tu paquete mediante una llamada a la API Graph. Resulta útil si tienes un sistema de implementación automatizado. Para hacerlo, necesitas solicitar un token de subida desde la sección Alojamiento web, para lo que deberás hacer clic en el botón Obtener token de acceso de subida de activo, que está ubicado en la parte superior.
Desde el cuadro de diálogo, puedes enviar con el token la siguiente llamada a nuestra API Graph para enviar tu archivo .zip. Ten en cuenta que usamos el subdominio de video, pero que esto es intencional, dado que la URL está configurada para recibir subidas más grandes.
curl -X POST https://graph-video.facebook.com/{App ID}/assets -F 'access_token={ASSET UPLOAD ACCESS TOKEN}' -F 'type=BUNDLE' -F 'asset=@./{YOUR GAME}.zip' -F 'comment=Graph API upload'
Luego, tu juego aparecerá normalmente en la lista de paquetes subidos. Puedes usar esta llamada para realizar la integración con tu sistema de compilación preexistente.
Ten en cuenta que el alojamiento de Facebook tiene varias restricciones. A continuación, te indicamos las más importantes:
Consulta la documentación sobre el alojamiento web para obtener más información.
Para probar la subida en un entorno de producción, es necesario que, en primer lugar, la compilación esté a disposición para producción. Haz clic en el botón "★" para pasar la compilación a producción.
Tu compilación de producción es aquella que se mostrará a cada persona que juegue el juego. Para probar las actualizaciones en producción sin afectar la base de jugadores preexistente, puedes poner a disposición una compilación para realizar pruebas. Esto hará que la compilación solo se muestre a los desarrolladores y evaluadores de la app.
Nota: No crees una app de prueba para el juego con el botón "Crear app de prueba". Para los juegos instantáneos, debes preparar una compilación para las pruebas.
Una vez que tengas una compilación en producción, se recomienda probar esa instancia en lugar de la que se ejecuta en tu servidor local. Puedes probar la compilación en producción con alguno de los siguientes métodos:
Para compartir tu juego en el feed, haz clic en el botón Compartir en la sección Comparte tu juego. De esta forma, podrás compartir el juego en el feed y probarlo desde cualquier plataforma (computadora, iOS o Android).
En la lista de juegos instantáneos de Messenger, tú y tu equipo (las personas que tienen asignados roles de administrador, desarrollador o evaluador en tu app) deben tener una lista de todos los juegos que están en construcción. La lista se llama En desarrollo. Esto te ayuda a probar juegos en Messenger, incluso si no están publicados.
Si tienes una página asociada a tu juego, también puedes generar un enlace que podrás compartir. Si tienes un bot configurado, el enlace dirigirá a los usuarios a una conversación con tu bot en Messenger y abrirá el juego de forma automática. De lo contrario, llevará a los usuarios a tu página en Facebook y abrirá el juego automáticamente desde ahí. De cualquier forma, todo el que haga clic en el enlace podrá jugar el juego de inmediato.
Cuando estés satisfecho con la versión publicada, deberás enviar tu juego a la revisión de apps para que nuestro equipo pueda evaluar su calidad y el cumplimiento con nuestras Políticas de la plataforma. Revisa nuestra lista de comprobación de lanzamiento antes de enviar tu juego y asegúrate de que cumpla todos los criterios especificados. Dicha guía también contiene instrucciones sobre cómo publicar tu juego después de que se haya revisado.
Ahora que sabes cómo probar y publicar tu juego, echa un vistazo a la lista de comprobación de lanzamiento antes de enviarlo: lista de comprobación de lanzamiento para juegos instantáneos. También revisa nuestra sección Prácticas recomendadas para conocer las recomendaciones de diseño y actualizaciones para tu juego.