ForgeOpenPlatform
es

OpenPlatform

Notificaciones y endpoints públicos de OpenPlatform

OpenPlatform · openplatform@5 openplatformnotificationsapitms

Además del lanzamiento y la verificación, OpenPlatform tiene algunos endpoints para las aplicaciones y para otros sistemas. Están en controllers/verify.js, controllers/api.js y controllers/socket.js.

Enviar una notificación

La respuesta de la verificación contiene notify, una dirección con la forma <platform url>/notify/?token=<checksum of user and application>, cuando el usuario acepta notificaciones. La aplicación le envía un POST con la cabecera x-token y un cuerpo JSON:

CampoSignificado
bodyel texto de la notificación
pathla ruta dentro de la aplicación que abre la notificación
icon, coloropcionales: sustituyen el icono y el color de la aplicación

El valor de x-token es el token de notificación que OpenPlatform deriva para ese usuario y aplicación: el MD5 de la dirección de notificación con la sal del reqtoken de la aplicación, y el MD5 de ese resultado con la sal de su restoken (FUNC.makenotify en definitions/func.js). Ambos secretos son los mismos que la aplicación comparte para el lanzamiento (registrar una app).

OpenPlatform responde Invalid token cuando la suma de comprobación o la cabecera no coinciden, y Not allowed notifications cuando el usuario o la aplicación no las aceptan. También comprueba las direcciones permitidas de la aplicación y que el usuario esté confirmado, habilitado y activo. Cuando todo es correcto:

  1. guarda la notificación (tabla tbl_notification) y aumenta el contador de no leídas del usuario;
  2. actualiza las sesiones de ese usuario abiertas en el portal, de modo que el contador aparece al instante;
  3. publica Notifications.create por TMS cuando el ajuste $tms está activado;
  4. devuelve el identificador de la notificación.

Para los usuarios que están desconectados y tienen notificaciones sin leer, un trabajo de servicio envía un resumen por correo ("Unread notifications") cuando la configuración del correo está hecha, como máximo una vez cada tres días por usuario (definitions/init.js).

La API de usuarios (un token)

GET /users/ devuelve los grupos y los usuarios de la plataforma como JSON. Está deshabilitada hasta que se definen los ajustes allow_token y token. El llamante envía el token como el parámetro de consulta token o como la cabecera x-token; los intentos erróneos repetidos se bloquean. Los usuarios vienen sin secretos: identificador, referencia, idioma, género, foto (una dirección absoluta), nombre, correo, color, preferencias, banderas (sa, isdisabled, isinactive, isonline), fechas y los ids de sus grupos.

Subir una imagen

POST /upload/base64/ (hasta 2 MB) acepta un cuerpo JSON con el nombre del archivo y file como data URI, y solo JPEG. Necesita un usuario con sesión o el token de consulta del ajuste servicetoken (consulta ajustes y base de datos para saber de dónde sale esa clave). La imagen se guarda en el almacén de archivos files y la respuesta es su dirección, /files/<id and checksum>.jpg; la dirección solo funciona con la suma de comprobación.

Varias instancias: el socket de sincronización

SOCKET /sync/ conecta instancias de OpenPlatform. Se acepta un cliente cuando el ajuste sync está activado y el token de la consulta es igual a sync_token; cualquier otro cliente se cierra con el código 4001 medio segundo después de abrirse. Los mensajes de un cliente confirmado se retransmiten a los demás, y mientras un cliente confirmado se está reconectando los mensajes se ponen en cola hasta diez segundos.