Mitgliederverwaltung mit dem 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.
Diese Anleitung beschreibt, wie Sie Mitglieder mit dem Vonage Client SDK verwalten. Bevor Sie beginnen, stellen Sie sicher, dass Sie das SDK zu Ihrer Anwendung hinzugefügt und eine Sitzung (Android, iOS, JS).
Wenn ein Benutzer einer Konversation beitritt, wird er ein Mitglied. Eine Mitgliedschaft ist eine Zuordnung zwischen einem Benutzer, einem Kanal und einem Konversation. Ein Beispiel: Ein Nutzer namens "Alice" wird über den "App"-Kanal Mitglied in einer Unterhaltung namens "Chat".
Mitgliederaktionen wie das Einladen und Auflisten von Mitgliedern sind für jeden Benutzer mit einer Konversations-ID möglich. Um zu kontrollieren, welche Benutzer diese Aktionen durchführen können, schränken Sie über ACLs für das JWT.
An einer Konversation teilnehmen
Mit einer Gesprächs-ID können Sie einer Unterhaltung beitreten. Durch den Beitritt wird ein Mitglied in der Konversation mit der JOINED Status. Danach können Sie Nachrichten senden und empfangen. Wenn Sie einer Konversation über das Client SDK beitreten, wird der Kanal auf "App" gesetzt.
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
...
}
Einladung zu einem Gespräch
Mit einer Konversations-ID und dem Benutzernamen eines anderen Nutzers können Sie diesen zu einer Konversation einladen. Auf Android und iOS wird eine Push-Benachrichtigung an die registrierten Geräte des eingeladenen Nutzers gesendet.
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
...
}
Verlassen einer Konversation
Mit einer Konversations-ID können Sie eine Konversation verlassen. Das Verlassen einer Konversation aktualisiert die bestehenden Das Mitglied Zustand zu 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
...
}
Gesprächsmitglieder gewinnen
Anhand der Gesprächs-ID eines Gesprächs, in dem Sie Mitglied sind, können Sie alle Mitglieder dieses Gesprächs abrufen. Sie können optional einige Parameter übergeben, um die Antwort zu konfigurieren, andernfalls werden die Standardwerte verwendet. Diese Methode gibt eine paginierte Antwort zurück. Wenn Sie mit der Paginierung nicht vertraut sind, sehen Sie sich die Paginierungsanleitung.
Sie können einstellen:
- Bestellung
- Größe der Seite
- Ein Cursor
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
}
}
Ein Gesprächsmitglied bekommen
Mit einer Gesprächs-ID und einer Mitglieds-ID können Sie ein vollständiges Mitglied-Objekt erhalten. Wenn Sie Ihr Mitgliedsobjekt erhalten möchten, können Sie die memberId Parameter zu "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
...
}
Getting A Conversation Mitgliederveranstaltungen
Sie können alle Conversation Member Events in Ihrer Anwendung empfangen, indem Sie eine Event Listener/Delegate Function einrichten. Hier können Sie die Art des eingehenden Mitgliedsereignisses überprüfen.
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
...
}
}