Gestión de conversaciones con Client SDK
Product deprecation notice
Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.
If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.
Esta guía explica cómo administrar conversaciones con el Vonage Client SDK. Antes de comenzar, asegúrate de haber agregado el SDK a tu aplicación y de haber creado una sesión (Android, iOS, JS).
A Conversación se puede considerar como una sala de chat cuando se trabaja con el Vonage Client SDK. La aplicación de tu Usuarios pueden unirse a las conversaciones. Cuando se unen a una conversación, pasan a ser un Miembro. De este modo, los miembros pueden enviar y recibir mensajes.
Acciones como borrar una Conversación o Evento son posibles por cualquier Usuario con un ID de Conversación. Para controlar qué Usuarios pueden realizar determinadas acciones, restrínjalas mediante ACL en el JWT.
Crear una conversación
El createConversation Este método te permite crear una conversación pasando, de forma opcional, algunos parámetros. Los nombres de las conversaciones deben ser únicos. Si no indicas un nombre de conversación ni un nombre para mostrar, se generará uno automáticamente.
Puedes configurar:
- Nombre
- Mostrar nombre
- URL de la imagen
- TTL
- Clave de clasificación personalizada
- Datos personalizados
const params = {
name: "name",
displayName: "displayName",
imageUrl: "https://...",
ttl: null, // 600 (in seconds)
customSortKey: "customSortKey",
customData: {key: "value"}
};
client.createConversation(params)
.then(conversationId => {
console.log("Id of created Conversation: ", conversationId);
}).catch(error => {
console.error("Error creating Conversation: ", error);
});
val params = CreateConversationParameters("Conversation","Alice+Bob")
client.createConversation(params) { error, conversationId ->
error?.takeIf { it is VGError }?.let {
// Handle Error in creating Conversation
} ?: error?.let {
// Handle generic Exception
}
conversationId?.let { /* Conversation created */ }
}
let params = VGCreateConversationParameters(name: "Conversation", displayName: "Alice+Bob")
client.createConversation(params) { error, conversationId in
...
}
Iniciar conversaciones
El getConversations le permite obtener todas las conversaciones en las que el usuario actual es miembro. Opcionalmente puede pasar algunos parámetros para configurar la respuesta, si no se utilizarán los valores por defecto. Este método devuelve una respuesta paginada. Si no está familiarizado con la paginación, consulte la sección guía de paginación.
Puedes configurar:
- Pedido
- Tamaño de la página
- Un cursor
- Si se deben incluir datos personalizados
- Qué pedir
const params = {
order: "asc", // "desc"
pageSize: 100,
cursor: null,
includeCustomData: false,
orderBy: null // "CUSTOM_SORT_KEY"
};
client.getConversations(params)
.then(({conversations, nextCursor, previousCursor}) => {
console.log("Array of Conversations: ", conversations);
console.log("Cursor for next set of results, if any. Could be null: ", nextCursor);
console.log("Cursor for previous set of results, if any. Could be null: ", previousCursor);
}).catch(error => {
console.error("Error getting Conversations: ", error);
});
val params = GetConversationsParameters(
order = PresentingOrder.DESC,
pageSize = 10,
)
client.getConversations(params) { error, conversationsPage ->
err?.let { /* Handle Error in fetching Conversations */ }
conversationsPage?.let {
val nextCursor = it.nextCursor
it.conversations.forEach {conversation ->
println("Conversation id: ${conversation.id}, name: ${conversation.name}, display name: ${conversation.displayName}")
}
}
}
let params = VGGetConversationsParameters(order: .asc, pageSize: 100)
client.getConversations(params) { error, conversationsPage in
if error == nil {
let conversations = conversationsPage!.conversations
} else {
// Handle failure
}
}
Conseguir una conversación
Dado un ID de Conversación, puedes obtener un objeto de Conversación.
client.getConversation(conversationId)
.then(conversation => {
console.log("Successfully got Conversation: ", conversation);
}).catch(error => {
console.error("Error getting Conversation: ", error);
});
client.getConversation("CONV_ID") { error, conversation ->
error?.let { /* Handle Error in fetching Conversation */ }
conversation?.let { /*Conversation received.*/ }
}
client.getConversation("CONV_ID") { error, conversation in
...
}
Actualizar una conversación
El updateConversation le permite actualizar las propiedades de su Conversación. Puede pasar algunos parámetros con 3 opciones:
- Omitir un valor - No hay cambios en la Conversación.
- Proporcionar un valor (
VGOption.some()(en Android e iOS) - El valor se actualiza en la conversación. - Pase
null(VGOption.some(null/nil)(en Android e iOS): el valor se establece en «null» o en el valor por defecto en la conversación.
Puede actualizar estas propiedades de Conversación:
- Nombre
- Mostrar nombre
- URL de la imagen
- TTL
- Clave de clasificación personalizada
- Datos personalizados
// Update the conversation displayName and remove the imageUrl
const params = {
displayName: "New Display Name",
imageUrl: null,
};
client.updateConversation("CONV_ID", params)
.then(conversationId => {
console.log("ID of updated Conversation: ", conversationId);
}).catch(error => {
console.error("Error creating Conversation: ", error);
});
// Update the conversation displayName and remove the imageUrl
val params = UpdateConversationParameters(displayName = Option.Some("New Display Name"),
imageUrl = Option.Some(null))
client.updateConversation("CONV_ID", params) { err, conversationId ->
if(err == null){
storedConversation = conversationId
} else {
// Handle error
}
}
// Update the conversation displayName and remove the imageUrl
let params = VGUpdateConversationParameters(displayName: .some(value: "New Display Name"),
imageUrl: .some(value: nil))
client.updateConversation("CONV_ID", parameters: params) { error, conversationId in
if error == nil {
storedConversation = conversationId
} else {
// Handle failure
}
}
Eventos de una conversación
Dado un ID de Conversación, puede obtener los Eventos de una Conversación. Opcionalmente puede pasar algunos parámetros para configurar la respuesta, si no se utilizarán los valores por defecto. Este método devuelve una respuesta paginada. Si no está familiarizado con la paginación, consulte la sección guía de paginación.
Puedes configurar:
- Pedido
- Tamaño de la página
- Un cursor
- Eventos por los que filtrar
- Incluir o no los eventos borrados
const params = {
order: "asc", // "desc"
pageSize: 100,
cursor: null,
eventFilter: null, // ['message', 'member:joined']
includeDeletedEvents: false,
startId: null // 3
};
client.getConversationEvents(conversationId, params)
.then(({events, nextCursor, previousCursor}) => {
console.log("Array of Events: ", events);
console.log("cursor for next set of results, if any. could be null: ", nextCursor);
console.log("cursor for previous set of results, if any. could be null: ", previousCursor);
}).catch(error => {
console.error("Error getting Events: ", error);
});
val params = GetConversationEventsParameters(PresentingOrder.ASC, 100)
client.getConversationEvents("CONV_ID", params) { error, eventsPage ->
error?.let { /* Handle Error in fetching Conversation Events */ }
eventsPage?.let {
it.events.forEach { event ->
//Process events
}
}
}
let params = VGGetConversationEventsParameters(order: .asc, pageSize: 100)
client.getConversationEvents("CONV_ID", parameters: params) { error, eventsPage in
if error == nil {
let events = eventsPage!.events
} else {
// Handle failure
}
}
Eliminar los eventos de una conversación
Dado un ID de Evento y un ID de Conversación, puede eliminar un evento.
client.deleteEvent(eventId, conversationId)
.then(() => {
console.log("Successfully deleted EVent.");
}).catch(error => {
console.error("Error deleting Event: ", error);
});
client.deleteEvent("EVENT_ID", "CONV_ID") { error ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
}
client.deleteEvent("EVENT_ID", conversationId: "CONV_ID") { error in
if error != nil {
// Handle failure
}
}
Borrar una conversación
Si dispones del ID de una conversación, puedes eliminarla.
client.deleteConversation(conversationId)
.then(() => {
console.log("Successfully deleted Conversation.");
}).catch(error => {
console.error("Error deleting Conversation: ", error);
});
client.deleteConversation("CONV_ID") { error ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */} ?:
error?.let {/* Handle generic Error */}
/* Conversation Deleted */
}
client.deleteConversation("CONV_ID") { error in
...
}