Gerenciamento de conversas com o 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.
Este guia explica como gerenciar conversas com o Vonage Client SDK. Antes de começar, certifique-se de ter adicionado o SDK ao seu aplicativo e criado uma sessão (Android, iOS, JS).
A Conversa pode ser visto como uma sala de bate-papo ao trabalhar com o Vonage Client SDK. O seu aplicativo Usuários podem participar de conversas. Quando participam de uma conversa, eles se tornam um Membro. Os membros podem, então, enviar e receber mensagens.
Ações como excluir uma conversa ou um evento podem ser realizadas por qualquer usuário que possua o ID da conversa. Para controlar quais usuários podem realizar determinadas ações, restrinja por meio de ACLs no JWT.
Iniciando uma conversa
O createConversation Esse método permite criar uma Conversação, passando opcionalmente alguns parâmetros. Os nomes das Conversações devem ser únicos. Se você não fornecer um nome de Conversação ou um nome de exibição, um será gerado automaticamente.
Você pode definir:
- Nome
- Nome de exibição
- URL da imagem
- TTL
- Chave de classificação personalizada
- Dados 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
...
}
Iniciando conversas
O getConversations Este método permite obter todas as conversas das quais o usuário atual é membro. Opcionalmente, você pode passar alguns parâmetros para configurar a resposta; caso contrário, serão utilizados os valores padrão. Este método retorna uma resposta paginada. Se você não estiver familiarizado com paginação, consulte o guia de paginação.
Você pode definir:
- Pedido
- Tamanho da página
- Um cursor
- Se deve incluir dados personalizados
- Como fazer o pedido
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
}
}
Iniciando uma conversa
Com um ID de conversa, é possível obter um objeto Conversation.
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
...
}
Atualizando uma conversa
O updateConversation Esse método permite que você atualize as propriedades da sua Conversação. Você pode passar alguns parâmetros, com 3 opções:
- Omitir um valor — Não há alteração na conversa.
- Fornecer um valor (
VGOption.some()(no Android e no iOS) — O valor é atualizado na conversa. - Passagem
null(VGOption.some(null/nil)(no Android e no iOS) — O valor é definido como nulo ou como o padrão na Conversação.
Você pode atualizar estas propriedades da Conversação:
- Nome
- Nome de exibição
- URL da imagem
- TTL
- Chave de classificação personalizada
- Dados 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
}
}
Obtendo os eventos de uma conversa
Com um ID de conversa, é possível obter os eventos dessa conversa. Opcionalmente, você pode passar alguns parâmetros para configurar a resposta; caso contrário, serão utilizados os valores padrão. Este método retorna uma resposta paginada. Se você não estiver familiarizado com paginação, consulte o guia de paginação.
Você pode definir:
- Pedido
- Tamanho da página
- Um cursor
- Eventos pelos quais filtrar
- Se os eventos excluídos devem ser incluídos
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
}
}
Excluindo os eventos de uma conversa
Com um ID de evento e um ID de conversa, você pode excluir um 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
}
}
Excluindo uma conversa
Com um ID de conversa, você pode excluir uma conversa.
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
...
}