Gestion des conversations avec le 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.
Ce guide explique comment gérer les conversations avec le Vonage Client SDK. Avant de commencer, assurez-vous d'avoir ajouté le SDK à votre application et d'avoir créé une session (Android, iOS, JS).
A Conversation peut être considéré comme un salon de discussion lorsque vous travaillez avec le Vonage Client SDK. L'interface de votre application Utilisateurs peuvent se joindre à des conversations. Lorsqu'ils rejoignent une conversation, ils deviennent une Membre. Les membres peuvent alors envoyer et recevoir des messages.
Des actions telles que la suppression d'une conversation ou d'un événement sont possibles pour tout utilisateur disposant d'un identifiant de conversation. Pour contrôler quels utilisateurs peuvent effectuer certaines actions, restreignez-les par l'intermédiaire de ACLs sur le JWT.
Créer une conversation
Les createConversation vous permet de créer une conversation en passant éventuellement quelques paramètres. Les noms des conversations doivent être uniques. Si vous ne fournissez pas de nom de conversation ou de nom d'affichage, un nom sera généré pour vous.
Vous pouvez régler :
- Nom
- Nom d'affichage
- URL de l'image
- TTL
- Clé de tri personnalisée
- Données personnalisées
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
...
}
Obtenir des conversations
Les getConversations vous permet d'obtenir toutes les conversations pour lesquelles l'utilisateur actuel est membre. Vous pouvez éventuellement passer quelques paramètres pour configurer la réponse, sinon les valeurs par défaut seront utilisées. Cette méthode renvoie une réponse paginée. Si vous n'êtes pas familier avec la pagination, consultez la page guide de pagination.
Vous pouvez régler :
- Commande
- Taille de la page
- Un curseur
- Inclure ou non des données personnalisées
- Que commander par
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
}
}
Obtenir une conversation
Étant donné l'identifiant d'une conversation, vous pouvez obtenir un objet de 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
...
}
Mise à jour d'une conversation
Les updateConversation vous permet de mettre à jour les propriétés de votre conversation. Vous pouvez passer des paramètres avec 3 options :
- Omettre une valeur - Il n'y a pas de changement dans la conversation.
- Fournir une valeur (
VGOption.some()sur Android et iOS) - La valeur est mise à jour dans la conversation. - Passage
null(VGOption.some(null/nil)sur Android et iOS) - La valeur est fixée à null ou à la valeur par défaut de la conversation.
Vous pouvez mettre à jour ces propriétés de conversation :
- Nom
- Nom d'affichage
- URL de l'image
- TTL
- Clé de tri personnalisée
- Données personnalisées
// 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
}
}
Obtenir les événements d'une conversation
À partir d'un identifiant de conversation, il est possible d'obtenir les événements d'une conversation. Vous pouvez éventuellement passer des paramètres pour configurer la réponse, sinon les valeurs par défaut seront utilisées. Cette méthode renvoie une réponse paginée. Si vous n'êtes pas familier avec la pagination, consultez la section guide de pagination.
Vous pouvez régler :
- Commande
- Taille de la page
- Un curseur
- Événements à filtrer
- Inclure ou non les événements supprimés
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
}
}
Suppression des événements d'une conversation
Vous pouvez supprimer un événement à partir d'un identifiant d'événement et d'un identifiant de conversation.
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
}
}
Suppression d'une conversation
Vous pouvez supprimer une conversation à partir d'un numéro d'identification de la conversation.
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
...
}