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.
このガイドでは、Vonage Client SDKでメンバーを管理する方法を説明します。始める前に、アプリにSDKを追加し、セッション(アンドロイド, iOS, JS).
を使用する。 ユーザー 会話に参加すると、彼らは メンバー.メンバーシップは、ユーザー、チャンネル、および 会話.例えば、"Alice "と呼ばれるユーザーは、"App "チャンネルを経由して、"Chat "という名前の会話のメンバーになります。
メンバーの招待やリストアップなどのメンバーアクションは、会話IDを持つユーザーであれば誰でも可能です。どのユーザーがこれらのアクションを実行できるかを制御するには、次の方法で制限します。 JWTのACL.
会話に参加する
カンバセーションIDを指定すると、カンバセーションに参加できます。参加すると、その会話に次のようなメンバーが作成されます。 JOINED 状態にします。この後、メッセージの送受信が可能になります。Client SDK経由で会話に参加する場合、チャンネルは "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
...
}
会話に誘う
会話IDと他のユーザーのユーザー名があれば、そのユーザーを会話に招待することができます。AndroidとiOSの場合、招待されたユーザーの登録端末にプッシュ通知が届きます。
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
...
}
会話から離れる
会話IDがあれば、会話から抜けることができます。会話から離れると、既存の メンバーズ 状態 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
...
}
会話メンバーの獲得
自分がメンバーである会話の会話IDを指定すると、その会話のすべてのメンバーを取得できます。オプションでパラメータを渡してレスポンスを設定することもできます。このメソッドは、ページ分割されたレスポンスを返します。ページ分割についてよくわからない場合は ページネーションガイド.
設定できる:
- オーダー
- ページサイズ
- カーソル
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
}
}
会話メンバーの獲得
会話IDとメンバーIDを指定すると、完全なメンバーオブジェクトを取得できます。メンバー・オブジェクトを取得したい場合は memberId パラメータを "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
...
}
会話を得るための会員イベント
イベントリスナー/デリゲート関数を設定することで、アプリケーションのすべての会話メン バーイベントを受信できます。ここで、受信するメンバーイベントの種類を確認できます。
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
...
}
}