Add support for buttons message (#584)

* Add list message example

* New protobuf extracted by @tulir

It now supported sending for buttonsMessage

* New protobuf by @tulir

* Added support for buttons message

* Sorry i am sleepy.....

* Sorry my typo :3

* just tidying up
This commit is contained in:
Ryn's
2021-07-13 20:02:27 +08:00
committed by GitHub
parent e40b2f98a6
commit 3ce4f6cc6e
6 changed files with 42558 additions and 6306 deletions
+30
View File
@@ -231,6 +231,36 @@ const vcard = 'BEGIN:VCARD\n' // metadata of the contact card
+ 'TEL;type=CELL;type=VOICE;waid=911234567890:+91 12345 67890\n' // WhatsApp ID + phone number
+ 'END:VCARD'
const sentMsg = await conn.sendMessage(id, {displayname: "Jeff", vcard: vcard}, MessageType.contact)
// send a list message!
const rows = [
{title: 'Row 1', description: "Hello it's description 1", rowId:"rowid1"},
{title: 'Row 2', description: "Hello it's description 2", rowId:"rowid2"}
]
const sections = [{title: "Section 1", rows: rows}]
const button = {
buttonText: 'Click Me!',
description: "Hello it's list message",
sections: sections
}
const sendMsg = await conn.sendMessage(id, button, MessageType.listMessage)
// send a buttons message!
const buttons = [
{buttonId: 'id1', buttonText: {displayText: 'Button 1'}, type: 1},
{buttonId: 'id2', buttonText: {displayText: 'Button 2'}, type: 1}
]
const buttonMessage = {
contentText: "Hi it's button message",
footerText: 'Hello World',
buttons: buttons,
headerType: 1
}
const sendMsg = await conn.sendMessage(id, buttonMessage, MessageType.buttonsMessage)
```
### Media Messages
+10613 -876
View File
File diff suppressed because it is too large Load Diff
+30421 -4778
View File
File diff suppressed because it is too large Load Diff
+1485 -649
View File
File diff suppressed because it is too large Load Diff
+7 -3
View File
@@ -11,6 +11,7 @@ import {
WAContactsArrayMessage,
WAGroupInviteMessage,
WAListMessage,
WAButtonsMessage,
WATextMessage,
WAMessageContent, WAMetric, WAFlag, WAMessage, BaileysError, WA_MESSAGE_STATUS_TYPE, WAMessageProto, MediaConnInfo, MessageTypeProto, URL_REGEX, WAUrlInfo, WA_DEFAULT_EPHEMERAL, WAMediaUpload
} from './Constants'
@@ -28,7 +29,7 @@ export class WAConnection extends Base {
*/
async sendMessage(
id: string,
message: string | WATextMessage | WALocationMessage | WAContactMessage | WAContactsArrayMessage | WAGroupInviteMessage | WAMediaUpload | WAListMessage,
message: string | WATextMessage | WALocationMessage | WAContactMessage | WAContactsArrayMessage | WAGroupInviteMessage | WAMediaUpload | WAListMessage | WAButtonsMessage,
type: MessageType,
options: MessageOptions = {},
) {
@@ -67,7 +68,7 @@ export class WAConnection extends Base {
/** Prepares a message for sending via sendWAMessage () */
async prepareMessage(
id: string,
message: string | WATextMessage | WALocationMessage | WAContactMessage | WAContactsArrayMessage | WAGroupInviteMessage | WAMediaUpload | WAListMessage,
message: string | WATextMessage | WALocationMessage | WAContactMessage | WAContactsArrayMessage | WAGroupInviteMessage | WAMediaUpload | WAListMessage | WAButtonsMessage,
type: MessageType,
options: MessageOptions = {},
) {
@@ -106,7 +107,7 @@ export class WAConnection extends Base {
}
}
/** Prepares the message content */
async prepareMessageContent (message: string | WATextMessage | WALocationMessage | WAContactMessage | WAContactsArrayMessage | WAGroupInviteMessage | WAMediaUpload | WAListMessage, type: MessageType, options: MessageOptions) {
async prepareMessageContent (message: string | WATextMessage | WALocationMessage | WAContactMessage | WAContactsArrayMessage | WAGroupInviteMessage | WAMediaUpload | WAListMessage | WAButtonsMessage, type: MessageType, options: MessageOptions) {
let m: WAMessageContent = {}
switch (type) {
case MessageType.text:
@@ -142,6 +143,9 @@ export class WAConnection extends Base {
case MessageType.listMessage:
m.listMessage = WAMessageProto.ListMessage.fromObject(message as any)
break
case MessageType.buttonsMessage:
m.buttonsMessage = WAMessageProto.ButtonsMessage.fromObject(message as any)
break
case MessageType.image:
case MessageType.sticker:
case MessageType.document:
+2
View File
@@ -19,6 +19,7 @@ export type WAContactMessage = proto.ContactMessage
export type WAContactsArrayMessage = proto.ContactsArrayMessage
export type WAGroupInviteMessage = proto.GroupInviteMessage
export type WAListMessage = proto.ListMessage
export type WAButtonsMessage = proto.ButtonsMessage
export type WAMessageKey = proto.IMessageKey
export type WATextMessage = proto.ExtendedTextMessage
export type WAContextInfo = proto.IContextInfo
@@ -333,6 +334,7 @@ export enum MessageType {
contactsArray = 'contactsArrayMessage',
groupInviteMessage = 'groupInviteMessage',
listMessage = 'listMessage',
buttonsMessage = 'buttonsMessage',
location = 'locationMessage',
liveLocation = 'liveLocationMessage',