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 puede verse como una sala de chat cuando se trabaja con el Vonage Client SDK. Las Usuarios pueden unirse a Conversaciones. Cuando se unen a una Conversación, se convierten en un Miembro. 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
En createConversation le permite crear una Conversación pasando opcionalmente algunos parámetros. Los nombres de las conversaciones deben ser únicos. Si no proporcionas un nombre de Conversación o un nombre para mostrar, se generará uno para ti.
Puedes configurarlo:
- 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
...
}
Conseguir conversaciones
En 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 configurarlo:
- Pida
- Tamaño de página
- Un cursor
- Incluir o no 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
En 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. - Pasar
null(VGOption.some(null/nil)en Android e iOS) - El valor se establece en null o el valor predeterminado 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 configurarlo:
- Pida
- Tamaño de 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
}
}
Borrar 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
Dado un ID de Conversación, puedes borrar una Conversación.
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
...
}