El modal de contacto usaba v-model en lugar de v-model:open según la documentación de Nuxt UI 4. También se actualizó la estructura para usar los slots correctos del UModal (#header, #body, #footer).
33 KiB
Baileys Media Messaging API Documentation
Documentación auto-generada para el desarrollo de mensajes multimedia en WhatsApp Nucleo Fuente: https://baileys.wiki Generado: 2025-12-03T17:18:54.553Z
Esta documentación contiene la API de Baileys relevante para enviar diferentes tipos de mensajes multimedia:
- Imágenes y Videos
- Documentos
- Audio y Notas de Voz
- Contactos
- Ubicación
- Encuestas (Polls)
- Eventos
Tabla de Contenidos
Type Aliases
- AnyMediaMessageContent
- AnyMessageContent
- AnyRegularMessageContent
- WAContactMessage
- WAContactsArrayMessage
- WALocationMessage
- WAGenericMediaMessage
- PollMessageOptions
- EventMessageOptions
- MediaType
- MediaGenerationOptions
- MiscMessageGenerationOptions
- MessageGenerationOptions
- MessageContentGenerationOptions
- WAMediaUpload
- DownloadableMessage
- WAContextInfo
- MessageWithContextInfo
Funciones
- prepareWAMessageMedia
- generateWAMessage
- generateWAMessageContent
- generateWAMessageFromContent
- getContentType
- extensionForMediaMessage
- downloadMediaMessage
- downloadContentFromMessage
- encryptedStream
- getMediaKeys
Variables
Interfaces
Type Aliases
type Aliase: AnyMediaMessageContent
Fuente: https://baileys.wiki/docs/api/type-aliases/AnyMediaMessageContent
On this page
AnyMediaMessageContent: object & Mentionable & Contextable & WithDimensions | object & Mentionable & Contextable & WithDimensions | { audio: WAMediaUpload; ptt: boolean; seconds: number; } | object & WithDimensions | object & Contextable & object & Editable
Defined in: src/Types/Message.ts:163
Type declaration
mimetype?
optional mimetype: string
type Aliase: AnyMessageContent
Fuente: https://baileys.wiki/docs/api/type-aliases/AnyMessageContent
On this page
AnyMessageContent: AnyRegularMessageContent | { force: boolean; forward: WAMessage; } | { delete: WAMessageKey; } | { disappearingMessagesInChat: boolean | number; } | { limitSharing: boolean; }
Defined in: src/Types/Message.ts:271
Type declaration
{ force: boolean; forward: WAMessage; }
force?
optional force: boolean
forward
forward: WAMessage
{ delete: WAMessageKey; }
delete
delete: WAMessageKey
Delete your message or anyone's message in a group (admin required)
{ disappearingMessagesInChat: boolean | number; }
disappearingMessagesInChat
disappearingMessagesInChat: boolean | number
{ limitSharing: boolean; }
limitSharing
limitSharing: boolean
type Aliase: AnyRegularMessageContent
Fuente: https://baileys.wiki/docs/api/type-aliases/AnyRegularMessageContent
AnyRegularMessageContent: object & Mentionable & Contextable & Editable | AnyMediaMessageContent | { event: EventMessageOptions; } | object & Mentionable & Contextable & Editable | { contacts: { contacts: IContactMessage[]; displayName: string; }; } | { location: WALocationMessage; } | { react: IReactionMessage; } | { buttonReply: ButtonReplyInfo; type: "template" | "plain"; } | { groupInvite: GroupInviteInfo; } | { listReply: Omit<IListResponseMessage, "contextInfo">; } | { pin: WAMessageKey; time: 86400 | 604800 | 2592000; type: Type; } | { body: string; businessOwnerJid: string; footer: string; product: WASendableProduct; } | SharePhoneNumber | RequestPhoneNumber & ViewOnce
Defined in: src/Types/Message.ts:218
type Aliase: WAContactMessage
Fuente: https://baileys.wiki/docs/api/type-aliases/WAContactMessage
WAContactMessage: IContactMessage
Defined in: src/Types/Message.ts:18
type Aliase: WAContactsArrayMessage
Fuente: https://baileys.wiki/docs/api/type-aliases/WAContactsArrayMessage
WAContactsArrayMessage: IContactsArrayMessage
Defined in: src/Types/Message.ts:19
type Aliase: WALocationMessage
Fuente: https://baileys.wiki/docs/api/type-aliases/WALocationMessage
WALocationMessage: ILocationMessage
Defined in: src/Types/Message.ts:29
type Aliase: WAGenericMediaMessage
Fuente: https://baileys.wiki/docs/api/type-aliases/WAGenericMediaMessage
WAGenericMediaMessage: IVideoMessage | IImageMessage | IAudioMessage | IDocumentMessage | IStickerMessage
Defined in: src/Types/Message.ts:30
type Aliase: PollMessageOptions
Fuente: https://baileys.wiki/docs/api/type-aliases/PollMessageOptions
On this page
PollMessageOptions: object
Defined in: src/Types/Message.ts:133
Type declaration
messageSecret?
optional messageSecret: Uint8Array
32 byte message secret to encrypt poll selections
name
name: string
selectableCount?
optional selectableCount: number
toAnnouncementGroup?
optional toAnnouncementGroup: boolean
values
values: string[]
type Aliase: EventMessageOptions
Fuente: https://baileys.wiki/docs/api/type-aliases/EventMessageOptions
On this page
EventMessageOptions: object
Defined in: src/Types/Message.ts:142
Type declaration
call?
optional call: "audio" | "video"
description?
optional description: string
endDate?
optional endDate: Date
extraGuestsAllowed?
optional extraGuestsAllowed: boolean
isCancelled?
optional isCancelled: boolean
isScheduleCall?
optional isScheduleCall: boolean
location?
optional location: WALocationMessage
messageSecret?
optional messageSecret: Uint8Array<ArrayBufferLike>
name
name: string
startDate
startDate: Date
type Aliase: MediaType
Fuente: https://baileys.wiki/docs/api/type-aliases/MediaType
MediaType: keyof typeof MEDIA_HKDF_KEY_MAPPING
Defined in: src/Defaults/index.ts:117
type Aliase: MediaGenerationOptions
Fuente: https://baileys.wiki/docs/api/type-aliases/MediaGenerationOptions
On this page
MediaGenerationOptions: object
Defined in: src/Types/Message.ts:336
Type declaration
backgroundColor?
optional backgroundColor: string
font?
optional font: number
logger?
optional logger: ILogger
mediaCache?
optional mediaCache: CacheStore
cache media so it does not have to be uploaded again
mediaTypeOverride?
optional mediaTypeOverride: MediaType
mediaUploadTimeoutMs?
optional mediaUploadTimeoutMs: number
options?
optional options: RequestInit
upload
upload: WAMediaUploadFunction
type Aliase: MiscMessageGenerationOptions
Fuente: https://baileys.wiki/docs/api/type-aliases/MiscMessageGenerationOptions
On this page
MiscMessageGenerationOptions: MinimalRelayOptions & object
Defined in: src/Types/Message.ts:309
Type declaration
backgroundColor?
optional backgroundColor: string
backgroundcolor for status
broadcast?
optional broadcast: boolean
if it is broadcast
ephemeralExpiration?
optional ephemeralExpiration: number | string
disappearing messages settings
font?
optional font: number
font type for status
mediaUploadTimeoutMs?
optional mediaUploadTimeoutMs: number
timeout for media upload to WA server
quoted?
optional quoted: WAMessage
the message you want to quote
statusJidList?
optional statusJidList: string[]
jid list of participants for status@broadcast
timestamp?
optional timestamp: Date
optional, if you want to manually set the timestamp of the message
type Aliase: MessageGenerationOptions
Fuente: https://baileys.wiki/docs/api/type-aliases/MessageGenerationOptions
MessageGenerationOptions: MessageContentGenerationOptions & MessageGenerationOptionsFromContent
Defined in: src/Types/Message.ts:357
type Aliase: MessageContentGenerationOptions
Fuente: https://baileys.wiki/docs/api/type-aliases/MessageContentGenerationOptions
On this page
MessageContentGenerationOptions: MediaGenerationOptions & object
Defined in: src/Types/Message.ts:351
Type declaration
getCallLink()?
optional getCallLink: (type, event?) => Promise<string | undefined>
Parameters
type
"audio" | "video"
number
Returns
Promise<string | undefined>
getProfilePicUrl()?
optional getProfilePicUrl: (jid, type) => Promise<string | undefined>
Parameters
jid
string
type
"image" | "preview"
Returns
Promise<string | undefined>
getUrlInfo()?
optional getUrlInfo: (text) => Promise<WAUrlInfo | undefined>
Parameters
text
string
Returns
Promise<WAUrlInfo | undefined>
jid?
optional jid: string
type Aliase: WAMediaUpload
Fuente: https://baileys.wiki/docs/api/type-aliases/WAMediaUpload
WAMediaUpload: Buffer | WAMediaPayloadStream | WAMediaPayloadURL
Defined in: src/Types/Message.ts:41
type Aliase: DownloadableMessage
Fuente: https://baileys.wiki/docs/api/type-aliases/DownloadableMessage
On this page
DownloadableMessage: object
Defined in: src/Types/Message.ts:83
Type declaration
directPath?
optional directPath: string | null
mediaKey?
optional mediaKey: Uint8Array | null
url?
optional url: string | null
type Aliase: WAContextInfo
Fuente: https://baileys.wiki/docs/api/type-aliases/WAContextInfo
WAContextInfo: IContextInfo
Defined in: src/Types/Message.ts:28
type Aliase: MessageWithContextInfo
Fuente: https://baileys.wiki/docs/api/type-aliases/MessageWithContextInfo
MessageWithContextInfo: "imageMessage" | "contactMessage" | "locationMessage" | "extendedTextMessage" | "documentMessage" | "audioMessage" | "videoMessage" | "call" | "contactsArrayMessage" | "liveLocationMessage" | "templateMessage" | "stickerMessage" | "groupInviteMessage" | "templateButtonReplyMessage" | "productMessage" | "listMessage" | "orderMessage" | "listResponseMessage" | "buttonsMessage" | "buttonsResponseMessage" | "interactiveMessage" | "interactiveResponseMessage" | "pollCreationMessage" | "requestPhoneNumberMessage" | "messageHistoryBundle" | "eventMessage" | "newsletterAdminInviteMessage" | "albumMessage" | "stickerPackMessage" | "pollResultSnapshotMessage" | "messageHistoryNotice"
Defined in: src/Types/Message.ts:50
Funciones
function: prepareWAMessageMedia
Fuente: https://baileys.wiki/docs/api/functions/prepareWAMessageMedia
On this page
prepareWAMessageMedia(message, options): Promise<Message>
Defined in: src/Utils/messages.ts:116
Parameters
message
options
MessageContentGenerationOptions
Returns
Promise<Message>
function: generateWAMessage
Fuente: https://baileys.wiki/docs/api/functions/generateWAMessage
On this page
generateWAMessage(jid, content, options): Promise<WAMessage>
Defined in: src/Utils/messages.ts:707
Parameters
jid
string
content
options
Returns
Promise<WAMessage>
function: generateWAMessageContent
Fuente: https://baileys.wiki/docs/api/functions/generateWAMessageContent
On this page
generateWAMessageContent(message, options): Promise<Message>
Defined in: src/Utils/messages.ts:369
Parameters
message
options
MessageContentGenerationOptions
Returns
Promise<Message>
function: generateWAMessageFromContent
Fuente: https://baileys.wiki/docs/api/functions/generateWAMessageFromContent
On this page
generateWAMessageFromContent(jid, message, options): WAMessage
Defined in: src/Utils/messages.ts:623
Parameters
jid
string
message
options
MessageGenerationOptionsFromContent
Returns
function: getContentType
Fuente: https://baileys.wiki/docs/api/functions/getContentType
On this page
getContentType(content): undefined | keyof IMessage
Defined in: src/Utils/messages.ts:715
Get the key to access the true type of content
Parameters
content
undefined | IMessage
Returns
undefined | keyof IMessage
function: extensionForMediaMessage
Fuente: https://baileys.wiki/docs/api/functions/extensionForMediaMessage
On this page
extensionForMediaMessage(message): string
Defined in: src/Utils/messages-media.ts:628
Parameters
message
Returns
string
function: downloadMediaMessage
Fuente: https://baileys.wiki/docs/api/functions/downloadMediaMessage
On this page
downloadMediaMessage<Type>(message, type, options, ctx?): Promise<Type extends "buffer" ? Buffer<ArrayBufferLike> : Transform>
Defined in: src/Utils/messages.ts:985
Downloads the given message. Throws an error if it's not a media message
Type Parameters
• Type extends "buffer" | "stream"
Parameters
message
type
Type
options
ctx?
DownloadMediaMessageContext
Returns
Promise<Type extends "buffer" ? Buffer<ArrayBufferLike> : Transform>
function: downloadContentFromMessage
Fuente: https://baileys.wiki/docs/api/functions/downloadContentFromMessage
On this page
downloadContentFromMessage(__namedParameters, type, opts): Promise<Transform>
Defined in: src/Utils/messages-media.ts:506
Parameters
__namedParameters
type
"ppic" | "product" | "image" | "video" | "sticker" | "thumbnail-document" | "audio" | "thumbnail-image" | "biz-cover-photo" | "thumbnail-video" | "thumbnail-link" | "gif" | "md-app-state" | "md-msg-hist" | "document" | "ptt" | "product-catalog-image" | "payment-bg-image" | "ptv"
opts
MediaDownloadOptions = {}
Returns
Promise<Transform>
function: encryptedStream
Fuente: https://baileys.wiki/docs/api/functions/encryptedStream
On this page
encryptedStream(media, mediaType, __namedParameters): Promise<{ encFilePath: string; fileEncSha256: Buffer<ArrayBufferLike>; fileLength: number; fileSha256: Buffer<ArrayBufferLike>; mac: Buffer<ArrayBuffer>; mediaKey: Buffer<ArrayBufferLike>; originalFilePath: undefined | string; }>
Defined in: src/Utils/messages-media.ts:384
Parameters
media
mediaType
"ppic" | "product" | "image" | "video" | "sticker" | "thumbnail-document" | "audio" | "thumbnail-image" | "biz-cover-photo" | "thumbnail-video" | "thumbnail-link" | "gif" | "md-app-state" | "md-msg-hist" | "document" | "ptt" | "product-catalog-image" | "payment-bg-image" | "ptv"
__namedParameters
EncryptedStreamOptions = {}
Returns
Promise<{ encFilePath: string; fileEncSha256: Buffer<ArrayBufferLike>; fileLength: number; fileSha256: Buffer<ArrayBufferLike>; mac: Buffer<ArrayBuffer>; mediaKey: Buffer<ArrayBufferLike>; originalFilePath: undefined | string; }>
function: getMediaKeys
Fuente: https://baileys.wiki/docs/api/functions/getMediaKeys
On this page
getMediaKeys(buffer, mediaType): Promise<MediaDecryptionKeyInfo>
Defined in: src/Utils/messages-media.ts:95
generates all the keys required to encrypt/decrypt & sign a media message
Parameters
buffer
undefined | null | string | Uint8Array<ArrayBufferLike>
mediaType
"ppic" | "product" | "image" | "video" | "sticker" | "thumbnail-document" | "audio" | "thumbnail-image" | "biz-cover-photo" | "thumbnail-video" | "thumbnail-link" | "gif" | "md-app-state" | "md-msg-hist" | "document" | "ptt" | "product-catalog-image" | "payment-bg-image" | "ptv"
Returns
Promise<MediaDecryptionKeyInfo>
Variables
variable: MEDIA_KEYS
Fuente: https://baileys.wiki/docs/api/variables/MEDIA_KEYS
const MEDIA_KEYS: ("ppic" | "product" | "image" | "video" | "sticker" | "thumbnail-document" | "audio" | "thumbnail-image" | "biz-cover-photo" | "thumbnail-video" | "thumbnail-link" | "gif" | "md-app-state" | "md-msg-hist" | "document" | "ptt" | "product-catalog-image" | "payment-bg-image" | "ptv")[]
Defined in: src/Defaults/index.ts:119
variable: MEDIA_PATH_MAP
Fuente: https://baileys.wiki/docs/api/variables/MEDIA_PATH_MAP
const MEDIA_PATH_MAP: { [T in MediaType]?: string }
Defined in: src/Defaults/index.ts:82
variable: MEDIA_HKDF_KEY_MAPPING
Fuente: https://baileys.wiki/docs/api/variables/MEDIA_HKDF_KEY_MAPPING
On this page
const MEDIA_HKDF_KEY_MAPPING: object
Defined in: src/Defaults/index.ts:95
Type declaration
audio
audio: string = 'Audio'
biz-cover-photo
biz-cover-photo: string = 'Image'
document
document: string = 'Document'
gif
gif: string = 'Video'
image
image: string = 'Image'
md-app-state
md-app-state: string = 'App State'
md-msg-hist
md-msg-hist: string = 'History'
payment-bg-image
payment-bg-image: string = 'Payment Background'
ppic
ppic: string = ''
product
product: string = 'Image'
product-catalog-image
product-catalog-image: string = ''
ptt
ptt: string = 'Audio'
ptv
ptv: string = 'Video'
sticker
sticker: string = 'Image'
thumbnail-document
thumbnail-document: string = 'Document Thumbnail'
thumbnail-image
thumbnail-image: string = 'Image Thumbnail'
thumbnail-link
thumbnail-link: string = 'Link Thumbnail'
thumbnail-video
thumbnail-video: string = 'Video Thumbnail'
video
video: string = 'Video'
Interfaces
interface: WAUrlInfo
Fuente: https://baileys.wiki/docs/api/interfaces/WAUrlInfo
On this page
Defined in: src/Types/Message.ts:102
Properties
canonical-url
canonical-url: string
Defined in: src/Types/Message.ts:103
description?
optional description: string
Defined in: src/Types/Message.ts:106
highQualityThumbnail?
optional highQualityThumbnail: IImageMessage
Defined in: src/Types/Message.ts:108
jpegThumbnail?
optional jpegThumbnail: Buffer<ArrayBufferLike>
Defined in: src/Types/Message.ts:107
matched-text
matched-text: string
Defined in: src/Types/Message.ts:104
originalThumbnailUrl?
optional originalThumbnailUrl: string
Defined in: src/Types/Message.ts:109
title
title: string
Defined in: src/Types/Message.ts:105
Ejemplos de Uso Comunes
Enviar Imagen
import { prepareWAMessageMedia, generateWAMessageFromContent } from '@whiskeysockets/baileys'
// Opción 1: Usando sendMessage directamente
await sock.sendMessage(jid, {
image: { url: './image.jpg' }, // o Buffer
caption: 'Descripción de la imagen',
mimetype: 'image/jpeg'
})
// Opción 2: Con prepareWAMessageMedia
const media = await prepareWAMessageMedia(
{ image: { url: './image.jpg' } },
{ upload: sock.waUploadToServer }
)
Enviar Video
await sock.sendMessage(jid, {
video: { url: './video.mp4' },
caption: 'Mi video',
mimetype: 'video/mp4',
gifPlayback: false // true para GIFs
})
Enviar Documento
await sock.sendMessage(jid, {
document: { url: './document.pdf' },
mimetype: 'application/pdf',
fileName: 'documento.pdf',
caption: 'Documento importante'
})
Enviar Audio
// Audio normal
await sock.sendMessage(jid, {
audio: { url: './audio.mp3' },
mimetype: 'audio/mp4'
})
// Nota de voz (PTT)
await sock.sendMessage(jid, {
audio: { url: './voice.ogg' },
mimetype: 'audio/ogg; codecs=opus',
ptt: true // Push To Talk = nota de voz
})
Enviar Contacto
// Un contacto
await sock.sendMessage(jid, {
contacts: {
displayName: 'Juan Pérez',
contacts: [{
vcard: `BEGIN:VCARD
VERSION:3.0
FN:Juan Pérez
TEL;type=CELL;waid=1234567890:+1234567890
END:VCARD`
}]
}
})
// Múltiples contactos
await sock.sendMessage(jid, {
contacts: {
displayName: 'Mis Contactos',
contacts: [
{ vcard: '...' },
{ vcard: '...' }
]
}
})
Enviar Ubicación
await sock.sendMessage(jid, {
location: {
degreesLatitude: 24.121231,
degreesLongitude: 55.1121221
}
})
Enviar Encuesta (Poll)
await sock.sendMessage(jid, {
poll: {
name: '¿Cuál es tu color favorito?',
values: ['Rojo', 'Azul', 'Verde', 'Amarillo'],
selectableCount: 1 // Cantidad de opciones seleccionables
}
})
Enviar con Quoted (Respuesta)
// El 'quoted' debe ser el mensaje original completo
await sock.sendMessage(jid,
{ text: 'Esta es una respuesta' },
{ quoted: originalMessage }
)
// También funciona con media
await sock.sendMessage(jid,
{ image: { url: './image.jpg' }, caption: 'Respuesta con imagen' },
{ quoted: originalMessage }
)