Gestion des membres 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 membres 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).
Lorsqu'un Utilisateur se joint à une conversation, il devient un Membre. Une adhésion est une correspondance entre un utilisateur, un canal et un canal de communication. Conversation. Par exemple, un utilisateur appelé "Alice" deviendra membre d'une conversation appelée "Chat", via le canal "App".
Les actions relatives aux membres, telles que l'invitation et la liste des membres, sont possibles pour tout utilisateur disposant d'un identifiant de conversation. Pour contrôler quels utilisateurs peuvent effectuer ces actions, restreignez-les par l'intermédiaire de ACLs sur le JWT.
Participer à une conversation
Un identifiant de conversation vous permet de rejoindre une conversation. L'adhésion crée un membre dans la conversation avec l'identifiant JOINED état. Ensuite, vous pouvez envoyer et recevoir des messages. Lorsque vous rejoignez une conversation via le Client SDK, le canal est défini sur "App"
client.joinConversation(conversationId)
.then(memberId => {
console.log("Successfully joined Conversation with Member Id: ", memberId);
}).catch(error => {
console.error("Error joining Conversation: ", error);
});
client.joinConversation("CONV_ID") { error, memberId ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */} ?:
error?.let {/* Handle generic Error */}
memberId?.let { /* Conversation joined */ }
}
client.joinConversation("CONV_ID") { error, memberId in
...
}
Inviter à une conversation
Avec un ID de conversation et le nom d'utilisateur d'un autre utilisateur, vous pouvez l'inviter à une conversation. Sur Android et iOS, une notification push sera envoyée aux appareils enregistrés de l'utilisateur invité.
client.inviteToConversation(conversationId, username)
.then(memberId => {
console.log("Successfully invited User to Conversation with Member Id: ", memberId);
}).catch(error => {
console.error("Error joining Conversation: ", error);
});
client.inviteToConversation("CONV_ID", "USERNAME") { error, memberId ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */} ?:
error?.let {/* Handle generic Error */}
memberId?.let { /* Invited to Conversation */ }
}
client.inviteToConversation("CONV_ID", username: "USERNAME") { error, memberId in
...
}
Quitter une conversation
Vous pouvez quitter une conversation à l'aide d'un identifiant de conversation. Le fait de quitter une conversation met à jour les Le membre de l'État à LEFT.
client.leaveConversation(conversationId)
.then(() => {
console.log("Successfully left Conversation.");
}).catch(error => {
console.error("Error leaving Conversation: ", error);
});
client.leaveConversation("CONV_ID") { error ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */} ?:
error?.let {/* Handle generic Error */}
/* Conversation Left */
}
client.leaveConversation("CONV_ID") { error in
...
}
Obtenir des membres de la conversation
Étant donné l'identifiant d'une conversation dont vous êtes membre, vous pouvez obtenir tous les membres de cette conversation. Vous pouvez éventuellement fournir 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
const params = {
order: "asc", // "desc"
pageSize: 100,
cursor: null
};
client.getConversationMembers(conversationId, params)
.then(({members, nextCursor, previousCursor}) => {
console.log("Array of Members: ", members);
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 Members: ", error);
});
val params = GetConversationMembersParameters(PresentingOrder.ASC, 100)
client.getConversationMembers("CONV_ID", params) { error, membersPage ->)
error?.let { /* Handle Error in fetching Conversation Members */ }
membersPage?.let {
it.members.forEach { member ->
println("Member id: ${member.id}, user id: ${member.user?.id}")
}
}
}
let params = VGGetConversationMembersParameters(order: .asc, pageSize: 100)
client.getConversationMembers("CONV_ID", parameters: params) { error, membersPage in
if error == nil {
let members = membersPage!.members
} else {
// Handle failure
}
}
Obtenir un membre de la conversation
Compte tenu de l'ID de la conversation et de l'ID du membre, vous pouvez obtenir un objet membre complet. Si vous souhaitez obtenir votre objet Membre, vous pouvez définir la propriété memberId au paramètre "me".
client.getConversationMember(conversationId, memberId)
.then(member => {
console.log("Successfully got Member: ", member);
}).catch(error => {
console.error("Error getting Member: ", error);
});
client.getConversationMember("CONV_ID", "MEM_ID") { error, member ->
error?.let { /* Handle Error in fetching Conversation Members */ }
}
client.getConversationMember("CONV_ID", memberId: "MEM_ID") { error, member in
...
}
Obtenir une conversation Événements pour les membres
Vous pouvez recevoir tous les événements des membres de la conversation dans votre application en mettant en place une fonction d'écoute/délégation d'événements. Ici, vous pouvez vérifier le type d'événement membre entrant.
client.on("conversationEvent", event => {
switch (event.kind) {
case "member:invited":
handleMemberInvited(event);
break;
case "member:joined":
handleMemberJoined(event);
break;
case "member:left":
handleMemberLeft(event);
break;
};
});
client.setOnConversationEventListener {
when(it) {
is MemberInvitedConversationEvent -> {} // Handle Member Invited Event
is MemberJoinedConversationEvent -> {} // Handle Member Joined Event
is MemberLeftConversationEvent -> {} // Handle Member Left Event
else -> {}
}
}
func chatClient(_ client: VGChatClient, didReceiveConversationEvent event: VGConversationEvent) {
switch event.kind {
case .memberInvited:
// Handle Member Invited Event
let memberInvitedEvent = event as! VGMemberInvitedEvent
case .memberJoined:
// Handle Member Joined Event
let memberJoinedEvent = event as! VGMemberJoinedEvent
case .memberLeft:
// Handle Member Left Event
let memberLeftEvent = event as! VGMemberLeftEvent
...
}
}