fix(carousel): send as direct interactiveMessage instead of viewOnceMessage
Carousels wrapped in viewOnceMessage cause error 479 rejection. Pastorini sends carousel as direct interactiveMessage which works on all platforms including WhatsApp Web/Desktop. https://claude.ai/code/session_01EK9NpViRCtda1WAvFd8ptR
This commit is contained in:
+6
-12
@@ -657,17 +657,11 @@ export const generateCarouselMessage = async (
|
||||
}
|
||||
}
|
||||
|
||||
// Wrap in viewOnceMessage for better compatibility
|
||||
// Return interactiveMessage directly (NOT wrapped in viewOnceMessage)
|
||||
// Carousels wrapped in viewOnceMessage cause error 479 rejection
|
||||
// Pastorini sends carousel as direct interactiveMessage which works on all platforms
|
||||
return {
|
||||
viewOnceMessage: {
|
||||
message: {
|
||||
messageContextInfo: {
|
||||
deviceListMetadata: {},
|
||||
deviceListMetadataVersion: 2
|
||||
},
|
||||
interactiveMessage
|
||||
}
|
||||
}
|
||||
interactiveMessage
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1164,8 +1158,8 @@ export const generateWAMessageContent = async (
|
||||
}
|
||||
// Pass options for media processing if cards have images/videos
|
||||
const generated = await generateCarouselMessage(carouselOptions, options)
|
||||
m.viewOnceMessage = generated.viewOnceMessage
|
||||
options.logger?.info('Sending carouselMessage with viewOnceMessage wrapper')
|
||||
m.interactiveMessage = generated.interactiveMessage
|
||||
options.logger?.info('Sending carouselMessage as direct interactiveMessage (no viewOnce wrapper)')
|
||||
}
|
||||
// Check for nativeList
|
||||
else if (hasNonNullishProperty(message, 'nativeList')) {
|
||||
|
||||
Reference in New Issue
Block a user