メッセージイベントの送受信方法
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そして 会話に参加.
メッセージ・テキスト・イベントの送信
会話IDを指定すると、テキストメッセージイベントを送信できます。
client.sendMessageTextEvent(conversationId, "Hi Vonage!")
.then(timestamp => {
console.log("Successfully sent text message at ", timestamp);
}).catch(error => {
console.error("Error sending text message: ", error);
});
client.sendMessageTextEvent("CONV_ID", "Hello world!") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message sent at timestamp */ }
}
client.sendMessageTextEvent("CONV_ID", text: "Hello world!") { error, timestamp in
...
}
メッセージ画像イベントの送信
画像の会話IDとURLがあれば、画像メッセージイベントを送信できます。
client.sendMessageImageEvent(conversationId, imageURL)
.then(timestamp => {
console.log("Successfully sent image message at ", timestamp);
}).catch(error => {
console.error("Error sending image message: ", error);
});
client.sendMessageImageEvent("CONV_ID", URL("MY_IMAGE_URL")) { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message sent at timestamp */ }
}
client.sendMessageImageEvent("CONV_ID", imageUrl: "MY_IMAGE_URL") { error, timestamp in
...
}
メッセージ・カスタム・イベントの送信
会話 ID と共に、完全にカスタムなペイロードをカスタム・メッセージ・イベントとして送信することができます。これは、アプリケーションに特化したメッセージ・イベント・タイプが欲しい場合に便利です。
const attachmentPayload = {
key1: "value 1",
key2: "value 2"
};
client.sendMessageCustomEvent(conversationId, attachmentPayload)
.then(timestamp => {
console.log("Successfully sent custom message at ", timestamp);
}).catch(error => {
console.error("Error sending custom message: ", error);
});
client.sendMessageCustomEvent("CONV_ID", "MY_CUSTOM_DATA") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message sent at timestamp */ }
}
client.sendMessageCustomEvent("CONV_ID", customData: "MY_CUSTOM_DATA") { error, timestamp in
}
メッセージイベントの受信
Event Listener/Delegate Functionを設定することで、アプリケーション内のすべての会話 Message Eventsを受信することができます。このリスナー/デリゲートを介して受信されたメッセージイベントは、自動的に delivered の状態です。ここで、受信メッセージイベントの種類を確認できます。
client.on("conversationEvent", event => {
switch (event.kind) {
case "message:text":
handleTextMessage(event);
break;
case "message:image":
handleImageMessage(event);
break;
case "message:custom":
handleCustomMessage(event);
break;
};
});
client.setOnConversationEventListener {
when(it) {
is MessageCustomEvent -> {} // Handle Message Custom
is MessageImageEvent -> {} // Handle Message Image
is MessageTextEvent -> {} // Handle Message Text
}
}
func chatClient(_ client: VGChatClient, didReceiveConversationEvent event: VGConversationEvent) {
switch event.kind {
case .messageText:
// Handle Message Text
let messageTextEvent = event as! VGMessageTextEvent
case .messageImage:
// Handle Message Image
let messageImageEvent = event as! VGMessageImageEvent
case .messageCustom:
// Handle Message Custom
let messageCustomEvent = event as! VGMessageCustomEvent
...
}
}
メッセージイベントを既読にする
メッセージイベントを受信したら、それを見たものとしてマークすることができます。
client.sendMessageSeenEvent(eventId, conversationId)
.then(timestamp => {
console.log("Successfully sent seen event at ", timestamp);
}).catch(error => {
console.error("Error sending seen event: ", error);
});
client.sendMessageSeenEvent("EVENT_ID", "CONV_ID") { error, timestamp ->
error?.takeIf { it is VGError }?.let {/* Handle Vonage Error */ } ?:
error?.let {/* Handle generic Error */ }
timestamp?.let { /* Message seen sent at timestamp */ }
}
client.sendMessageSeenEvent("EVENT_ID", "CONV_ID") { error, timestamp in
...
}