Guía para desarrolladores

Cómo conectar LBPhone a fivehub.pro

Hacé que las fotos y videos que tus jugadores sacan con la cámara in-game se guarden en tu CDN con URLs permanentes. Probado en LBPhone 2.8.2.

Qué lográs con esto

LBPhone permite configurar un destino de subida para la cámara in-game. Por defecto apunta a Fivemanage, pero acepta cualquier servicio propio a través del método "Custom".

Conectándolo a fivehub.pro, cada foto que un jugador saque desde el celular se sube a tu organización y queda con una URL permanente. Sin links de Discord que caducan, sin límites de tráfico, y todo visible en tu panel para poder moderar.

Paso a paso

Conectá LBPhone en 5 pasos

  1. 01

    Generá la API key de organización

    Entrá a tu panel de fivehub.pro, andá a API Key y creá una nueva. Necesitás una key de organización (empieza con fivehub_org_), no una personal.

    Copiala en un lugar seguro: se muestra una sola vez.

  2. 02

    Cambiá el método de subida a "Custom"

    En lb-phone/config/config.lua buscá Config.UploadMethod y poné las tres líneas en "Custom". Sin este paso, LBPhone sigue subiendo con Fivemanage y nunca usa tu configuración.

    Es el paso que más se olvida, y falla en silencio: todo parece bien y las fotos siguen yendo al servicio anterior.

  3. 03

    Configurá el destino en shared/upload.lua

    Buscá UploadMethods y editá la entrada Custom. Ahí van la URL de fivehub.pro, el nombre del campo del formulario, y las rutas para leer la respuesta.

    El bloque completo está abajo en el código de referencia.

  4. 04

    Whitelisteá el dominio

    En lb-phone/config/config.lua agregá fivehub.pro a ExternalWhitelistedDomains y a UploadWhitelistedDomains.

    Son dos listas distintas y hacen falta las dos.

  5. 05

    Cargá la key en server/apiKeys.lua

    Buscá la tabla API_KEYS y poné tu key en Video, Image y Audio. Podés usar la misma en las tres.

    Después de esto, reiniciá el recurso con ensure lb-phone.

UploadMethods = {
    Custom = {
        Video = {
            url = "https://fivehub.pro/api/assets",
            field = "file",
            headers = {
                ["x-api-key"] = "API_KEY",
            },
            success = { path = "publicUrl" },
        },
        Image = {
            url = "https://fivehub.pro/api/assets",
            field = "file",
            headers = {
                ["x-api-key"] = "API_KEY",
            },
            success = { path = "publicUrl" },
        },
        Audio = {
            url = "https://fivehub.pro/api/assets",
            field = "file",
            headers = {
                ["x-api-key"] = "API_KEY",
            },
            success = { path = "publicUrl" },
        },
    },
}
Config.ExternalWhitelistedDomains = {
    "fivemanage.com",
    "fivehub.pro",
}

Config.UploadWhitelistedDomains = {
    "fivemanage.com",
    "fmfile.com",
    "amazonaws.com",
    "fivehub.pro",
}
API_KEYS = {
    Video = "fivehub_org_TU_KEY",
    Image = "fivehub_org_TU_KEY",
    Audio = "fivehub_org_TU_KEY",
}

Cómo saber que quedó bien

Con el servidor arriba, sacá una foto desde el celular in-game y esperá unos segundos.

  • La foto se ve en el celular y no aparece ningún error en la consola del servidor.
  • El asset aparece en tu panel de fivehub.pro, dentro de la organización, con la URL permanente.
  • Copiando esa URL en el navegador, la imagen carga.
Si algo no anda

Problemas comunes

Los cuatro fallos que aparecen casi siempre, y qué los causa.

SíntomaCausa
La foto no sube y no hay ningún error visibleFalta poner Config.UploadMethod en "Custom". LBPhone sigue usando el método anterior y nunca llega a tu configuración.
La consola tira un error de dominio no permitidofivehub.pro no está en ExternalWhitelistedDomains o en UploadWhitelistedDomains. Hay que agregarlo a las dos.
Sube, pero la foto aparece rotaLa API key es personal en lugar de de organización, o está mal copiada. Tiene que empezar con fivehub_org_.
La respuesta dice que la key es inválidaLa key fue revocada o vencida. Generá una nueva en el panel y actualizá apiKeys.lua.

Preguntas frecuentes

¿Necesito una API key distinta para video, imagen y audio?

No. Una sola key de organización sirve para los tres. Si querés revocarla, revocás todo junto.

¿Qué pasa si supero el almacenamiento de mi plan?

El excedente se factura por GB. El servicio no se corta y las subidas siguen funcionando, así que los jugadores no se enteran.

¿Las fotos de los jugadores quedan privadas?

Las URLs son públicas pero no adivinables, y todas aparecen en tu panel. Podés moderar o borrar cualquier contenido desde ahí.

¿Funciona con otra versión de LBPhone?

Esta guía está probada en la 2.8.2. En otras versiones la ruta de los archivos puede cambiar; verificá que existan antes de editar.

Nota técnica

En las configuraciones de ejemplo que circulan, la URL incluye ?api=API_KEY y un header Authorization. El servidor de fivehub.pro no lee ninguno de los dos: autentica solamente por el header x-api-key.

Conviene sacarlos. Una API key en un query string termina en logs de servidor, de proxy y de analítica, donde puede quedar expuesta sin que te enteres.

¿Listo para conectar tu celular?

Creá tu cuenta gratis: 20 GB, SDK nativo en Lua y URLs permanentes desde el primer minuto.