OpenIM, un proyecto de mensajería instantánea de código abierto, ha lanzado una API de envío de mensajes para admitir una integración profunda de aplicaciones con interoperabilidad de mensajería instantánea.
Ejemplos de resultados
Por ejemplo, en un escenario de oficina colaborativa, los empleados reciben una notificación enviada por el sistema que informa que es necesario procesar una nueva tarea. ?
Los empleados hacen clic en las notificaciones de trabajo para ver detalles específicos, y cada notificación tiene un apodo y avatar de remitente diferente. Este tipo de notificación es un nuevo tipo de sesión en el que todas las notificaciones se agregan en la misma sesión.
Introducción a OpenIM
OpenIM: SDK de código abierto para la solución global de mensajería instantánea desde servidor a cliente. Los desarrolladores pueden reemplazar fácilmente los servicios en la nube de mensajería instantánea de terceros para crear aplicaciones con funciones sociales y de chat, y también pueden integrar SDK en sus propias aplicaciones para proporcionar funciones de mensajería instantánea. El valor de la mensajería instantánea de código abierto radica en "todo está bajo control" y "mi información es mi decisión", tanto en términos de tecnología como de seguridad de la información.
En total, más de 7,2 mil estrellas. Como líder en mensajería instantánea de código abierto, OpenIM continúa agregando nuevas funciones, incluida la API de envío de mensajes, lectura de chat grupal, etc. El servidor y el SDK tienen la licencia Apache-2.0 y su uso es gratuito. Los productos con UI requieren autorización comercial. Los clientes interesados pueden contactarnos para discusiones en profundidad.
Servicio exclusivo VIP de 5X8 horas, que incluye:
(1) Consulta técnica personalizada, llamadas telefónicas WeChat, etc.
(2) Consulta de capacitación sobre el uso del SDK;
(3) Preguntas y respuestas sobre arquitectura e implementación del lado del servidor;
(4) Se priorizan las nuevas necesidades de mensajería instantánea para la programación;
(5 ) Se prioriza la corrección de errores;
p>
(6) Mantenimiento del sistema y respuesta a fallas;
Experiencia web:
Experiencia de Android: /#/
Breve descripción p>
El administrador envía mensajes de tipo notificación a través de la interfaz backend
Solicitar URL
",?
"senderNickname":?"SystemNotification2", ?
"content": {
"notificationName": ?"Gestión de documentos oficiales", ?
"notificationFaceURL": ?"", ?
"notificationType":?1,?
"text":?""Hola a todos, hoy es...",?
"externalUrl" : "",
"mixType": ?0, ?
"pictureElem": {
"sourcePath" : ?"", ?
"sourcePicture": {
"uuid": ?", ?
"type": ?", ? , ?
"tamaño": ?0, ?
"ancho": ?0, ?
"alto": ?0, ?
"url": ? "
},?
"bigPicture": {
"uuid":?""
},?,?
"tipo": ?"" }?, ?
"tamaño": ?0, ?
"ancho ": ?0, ?
"altura": ?0, ?
"url": ?"
}, ?
"snapshotPicture": {
"uuid":?""
},?,?
"type":?"" }?,?
"tamaño ":?0,?
"ancho":?0,?
"alto":?0,?
"url":?0, ?
?}
}, ?
"soundElem": {
"uuid ": ?""
}
"soundElem": ?, ?
"soundPath": ?"" , ?, ?
"sourceUrl": ?"" ,?,?
"dataSize":?0,?
"duración":?0
}, ?
" videoElem": {
"videoPath":?"" },?,?
"videoUUID":?"" }?,?
"videoUrl ":?"",?,?,?
"videoType":?"",?,?,?
"videoSize" :?0
,?
"duration":?0,?
"snapshotPath":?"" ,?,?
"snapshotUUID":?"" , ?
"snapshotSize": ?0, ?
"snapshotUrl": ?"" , ?, , ?
"snapshotWidth": ?0, ?
"snapshotHeight": ?0
}, ?
"fileElem": {
"filePath": ?" } , ?,?
"uuid":?"" }?,?
"sourceUrl":?"" ,?,?
"fileName" : ?"",?,?
"fileSize":?0
},?
"ex":?
} , ?
}, ?
"contentType": ?1400, ?
"sessionType": ?4, ?
" isOnlineOnly":? false,?
"offlinePushInfo": {
"title":? admin revocar su mensaje",?
"desc": ? ", ?
"ex": ?, ?
"iOSPushSound": ?"", ? predeterminado", ?
"iOSBadgeCount": ?
?}
}Copiar?clipboardErrorCopied
Parámetros de solicitud
Nombre del parámetro tipo descripción requerida
operaciónIDcadena es el ID de operación y permanece único. Se recomienda utilizar un número aleatorio en microsegundos de la hora actual para el uso de problemas de seguimiento de enlaces en segundo plano.
p> sendIDstring es el ID del administrador y el ID del administrador configurado en la configuración en segundo plano. file 1. El valor predeterminado es openIM123456
recvIDstring es el ID de usuario del receptor
senderPlatformIDint no tiene ID de plataforma del remitente, simula el envío del usuario cuando Complete, 1-gt; -gt; Android, 3-gt; Windows, 4-gt; OSX, 5-gt; Web, 5-gt; MiniWeb, 7-gt; senderFaceURLstringNo La imagen del encabezado notificaciones Generación de sesión
senderNicknamestringSin apodo del remitente, utilizado para la generación de sesión de notificación del cliente
contentobject es el contenido específico del mensaje y el interior es un objeto json
notificationNamestring es el título de la notificación
notificationFaceURLstring es el avatar de la notificación
notificationTypeint es el tipo de notificación, por ejemplo: 1 significa notificación de incorporación
notificationFaceURLstring significa el avatar de la notificación
notificationTypeint significa tipo de notificación.
Por ejemplo, 1 representa el aviso de entrada, 2 representa el aviso de renuncia
textstring es el texto de la notificación
externalUrlstring es la dirección de notificación que debe ser redirigida después de hacer clic
externalUrlstring es un objeto json. El enlace de dirección al que saltar después de hacer clic (si no está completado, no es necesario saltar)
mixTypeint es el tipo mixto de notificación 0: Notificación de texto sin formato 1: Notificación de imagen de texto 2: Notificación de video de texto 3: Notificación de documento de texto: notificación de documento de texto
PictureElemobject sin PictureElemobject
sourcePictureobject sin imagen original
bigPictureobject sin imagen grande
snapshotPictureobject sin miniatura
soundElemobject no tiene ningún objeto de elemento de sonido
videoElemobject no tiene ningún Elemobject de vídeo
fileElemobject no tiene ningún archivo Elemobject
uuidstring no tiene un ID único para el objeto que se almacenará en caché
iOSPushSoundstringNo hay sonido de inserción de IOS
iOSBadgeCountboolNo se incluye ningún mensaje de inserción de IOS en el recuento de no leídos del icono del escritorio
Ejemplo de devolución
{
"errCode": ?0, ?
"errMsg": ?", ?
"datos": {
"serverMsgID": ?
"datos":?,?
"clientMsgID":?"",?,?
"sendTime":? 1645697804432
}
}Copiar?clipboardErrorCopied
Parámetros devueltos
Nombre del parámetro tipo descripción
errCodeint0 éxito, error no 0
mensaje de error errMsgstring
sendTimeint La hora exacta en la que se envió el mensaje, especialmente la marca de tiempo de milisegundos
serverMsgIDstring El ID único del mensaje generado por el servidor
clientMsgIDstring cliente El ID único del mensaje generado por el punto final. Se utiliza como clave principal de forma predeterminada.
Descripción del formato del tipo de información
El tipo de contenido en el campo de información enviado por el administrador. Descripción de los tipos de mensajes admitidos y descripciones de campos específicos en el contenido del mensaje.
Descripción del tipo de mensaje ContentType
Descripción del tipo de valor ContentType
Mensaje de texto 101
Mensaje de imagen 102
103 Mensajes de audio
104 Mensajes de vídeo
105 Mensajes de archivo
106 Chat grupal con mensajes tipo @
107 Fusionar mensaje tipo reenvío
108 Mensaje de tarjeta de visita
109 Mensaje de tipo geolocalización
110 Mensaje personalizado
111 Mensaje de tipo retiro
112 Leer mensaje de tipo de confirmación
114 Mensaje de tipo de referencia
Contenido específico
El contenido de un objeto json específico, diferentes tipos de mensajes son diferentes objetos json
Mensaje de texto
{
...
"content": {
" text":?" nihao "
},
....
}Copiar?a?clipboardErrorCopied
El nombre del parámetro debe completar la descripción del tipo
texto es el contenido específico de la cadena mensaje de texto
Mensaje personalizado
{
...
"contenido": {
"datos":?",?
"descripción":?"",?,?
"extensión": ?"",?,?
},
....
}Copiar?a?clipboardErrorCopied
Tipo de nombre de parámetro descripción obligatoria
la cadena datajson es un mensaje definido por el usuario, como una cadena de conversión del objeto json
la cadena descripciónjson es un mensaje definido por el usuario, como una cadena de conversión del objeto json String
la cadena descripciónjson no tiene extensión. La cadena descripciónjson es un mensaje definido por el usuario. Como cadena de conversión de un objeto json, no se puede utilizar.
la cadena extensiónjson no tiene campo de extensión y está temporalmente. no disponible.