client.message.send aceita uma família de objetos de conteúdo interativo tipados. Cada um é discriminado pelo seu campo type.
Apontando para uma mensagem
Reply / reaction / revoke / pin / keep / event-response aceitam umWaMessageTargetInput: um evento message recebido passado literalmente (sua key é usada) ou uma WaMessageKey explícita:
event.key já é uma WaMessageKey:
Reações
emoji para remover uma reação anterior:
Enquetes
{ name }. A ordem importa — ela é usada no hashing dos votos.
Votando em uma enquete
Votar requer a identidade da enquete original e seumessageSecret (32 bytes do messageContextInfo.messageSecret da enquete):
Os votos recebidos chegam como eventos
message_addon depois de descriptografados.Editando uma mensagem
Para editar, envie o conteúdo novo e passeeditKey nas opções. A original deve ser fromMe. Você pode passar o evento message recebido literalmente, sua key, ou uma WaSendEditKey explícita ({ id, participant?, timestampMs? }):
MESSAGE_EDIT que mira o editKey.id.
Revogando (apagar para todos)
target.fromMe: false dispara um admin revoke. Não há opção subtype para passar.
Fixando
durationSecs para sobrescrever o default. O wa-web oferece três presets:
86_400 (24h). O TTL viaja com o pin via messageContextInfo.messageAddOnDurationInSecs; sem ele os clients receptores dropam o pin silenciosamente, então a lib sempre carimba o default se você omitir. durationSecs é ignorado em unpin.
Manter no chat
Para chats com mensagens temporárias, mantenha (ou desfaça a manutenção de) uma mensagem específica:Eventos
Crie uma mensagem de evento no estilo calendário:Respondendo a um evento
Localizações e contatos
Ainda não existe um builder dedicado para localizações estáticas ou cartões de contato — envie-os como umProto.IMessage bruto:
