Ir al contenido

Límites y errores

Esta página resume las reglas compartidas entre las API. Los campos obligatorios, el comportamiento del ciclo de vida y la semántica específica del modelo aún pertenecen a cada página de API.

ElementoLímite
Solicitar tamaño del cuerpoMáximo 32 KB.
ID generados por el Gateway32 caracteres hexadecimales en minúscula.
Contraseña ChannelGeneralmente entre 8 y 128 caracteres.
op_id1-128 caracteres; letras, dígitos, _, :, -.
imagesHasta 32 URL, con un máximo de 2048 caracteres cada una.
tagsHasta 32 etiquetas, con un máximo de 64 caracteres cada una, recortadas y deduplicadas.
metadataSólo valores escalares; clave máx. 64, valor máx. 512.
attrsParche de objetos; null quita una llave; Evite el anidamiento complejo.
ttlMarca de tiempo Unix de milisegundos; El TTL de entrega del proveedor tiene un límite de alrededor de 28 días.
Campos desconocidosLos argumentos de las herramientas nativas Message, Event, Thing y MCP son estrictos; los campos desconocidos devuelven 400.

Éxito:

{
"success": true,
"data": {
"accepted": true
},
"error": null,
"error_code": null
}

Fracaso:

{
"success": false,
"data": null,
"error": "human readable message",
"error_code": "machine_readable_code"
}

La automatización debería preferir success y error_code al texto error en lenguaje natural.

success=true significa que Gateway procesó la petición. accepted=true significa que entró en despacho.

No garantiza:

  • Todos los dispositivos están en línea.
  • APNs o FCM ha mostrado una notificación.
  • Transporte privado Android entregado en tiempo real.
  • El usuario no se ve afectado por los permisos de notificación, el modo de enfoque o la política de batería.

Trate el accepted como el estado de aceptación y envío del Gateway, no como un recibo de visualización del dispositivo final.

EstadoSignificadoRazón típicaQué hacer
200Gateway procesó la peticiónsuccess=true, pero aún así verifique acceptedAlmacene los ID devueltos y op_id.
400La validación fallóFalta campo obligatorio, campo desconocido, formato incorrectoCompare el JSON con la tabla de campos API.
401Error de autenticación GatewayEl Gateway privado usa PUSHGO_TOKEN; Falta el token Bearer o es incorrectoVerifique Authorization: Bearer <token>.
404Falta objetivoEl Channel, el Event o el Thing no existeCompruebe channel_id, event_id, thing_id.
413El cuerpo de la petición es demasiado grandeJSON supera los 32 KBUtilice URL de imágenes; reducir metadatos o atributos.
503Envío no aceptado en su totalidadProveedor, transporte privado, cola o downstream no disponibleInspeccione los registros, las estadísticas y la capacidad de la cola del Gateway.
  • JSON debe ser válido.
  • No envíe event_id a /event/create o thing_id a /thing/create.
  • Eliminar campos desconocidos.
  • severity debe ser critical, high, normal o low.
  • attrs debe ser un parche de objeto, no una matriz o una estructura profundamente anidada.
  • Comprobar si el Gateway privado tiene PUSHGO_TOKEN.
  • El encabezado debe ser Authorization: Bearer <token>.
  • No confunda la contraseña de Channel con el token Gateway.
  • Asegúrese de que el proxy inverso no elimine los cabeceras de autorización.

La petición se realizó correctamente pero el dispositivo no notifica

Sección titulada «La petición se realizó correctamente pero el dispositivo no notifica»
  • El cliente debe estar suscrito al canal.
  • El permiso de notificación del dispositivo debe estar habilitado.
  • La entrega de Apple puede verse afectada por APNs, los modos de enfoque y la configuración del sistema.
  • Los clientes de Android deben poder recuperar el /gateway/profile correcto.
  • Los puertos de transporte privados, los certificados y las direcciones externas deben ser accesibles.
  • Los registros de Gateway pueden mostrar errores de proveedor o de envío privado.
  • Debe estar habilitado PUSHGO_PRIVATE_TRANSPORTS.
  • Se debe poder acceder a WSS a través del dominio HTTPS.
  • El puerto UDP QUIC puede estar bloqueado por un firewall o proxy.
  • Raw TCP debe manejar TLS o la descarga de TLS correctamente.
  • Los puertos anunciados y los puertos de enlace reales pueden diferir detrás de NAT o asignación de puertos.
  • Debe estar habilitado PUSHGO_MCP_ENABLED.
  • PUSHGO_PUBLIC_BASE_URL debe ser una URL HTTPS externa.
  • El proxy inverso debe reenviar /.well-known/*, /oauth/* y /mcp.
  • DCR debe coincidir con la capacidad del cliente.
  • Las sesiones de página vinculada pueden caducar.