Message
All wechat messages will be encapsulated as a Message.
Message
All wechat messages will be encapsulated as a Message.
Kind: global class
instance
.from() ⇒
Contact
|null
.to() ⇒
Contact
|null
.room() ⇒
Room
|null
.text() ⇒
string
.say(textOrContactOrFile) ⇒
Promise <void>
.type() ⇒
MessageType
.self() ⇒
boolean
.mention() ⇒
Promise <Contact []>
.mentionSelf() ⇒
Promise <boolean>
.forward(to) ⇒
Promise <void>
.date() ⇒
Date
.age() ⇒
number
.toFileBox() ⇒
Promise <FileBox>
.toContact() ⇒
Promise <Contact>
.toUrlLink() ⇒
Promise <UrlLink>
static
.find() ⇒
Promise <Message>
.findAll() ⇒
Promise <Message []>
message.from() ⇒ Contact | null
Contact | null
Get the sender from a message.
Kind: instance method of Message
Example
const bot = new Wechaty()
bot
.on('message', async m => {
const contact = msg.from()
const text = msg.text()
const room = msg.room()
if (room) {
const topic = await room.topic()
console.log(`Room: ${topic} Contact: ${contact.name()} Text: ${text}`)
} else {
console.log(`Contact: ${contact.name()} Text: ${text}`)
}
})
.start()
message.to() ⇒ Contact
| null
Contact
| null
Get the destination of the message Message.to() will return null if a message is in a room, use Message.room() to get the room.
Kind: instance method of Message
Example
const bot = new Wechaty()
bot
.on('message', async m => {
const contact = message.from()
const text = message.text()
const toContact = message.to()
if (toContact) {
const name = toContact.name()
console.log(`toContact: ${name} Contact: ${contact.name()} Text: ${text}`)
} else {
console.log(`Contact: ${contact.name()} Text: ${text}`)
}
})
.start()
message.room() ⇒ Room
| null
Room
| null
Get the room from the message. If the message is not in a room, then will return null
Kind: instance method of Message
Example
const bot = new Wechaty()
bot
.on('message', async m => {
const contact = msg.from()
const text = msg.text()
const room = msg.room()
if (room) {
const topic = await room.topic()
console.log(`Room: ${topic} Contact: ${contact.name()} Text: ${text}`)
} else {
console.log(`Contact: ${contact.name()} Text: ${text}`)
}
})
.start()
message.content()
Deprecated
use text instead
Kind: instance method of Message
message.text() ⇒ string
string
Get the text content of the message
Kind: instance method of Message
Example
const bot = new Wechaty()
bot
.on('message', async m => {
const contact = msg.from()
const text = msg.text()
const room = msg.room()
if (room) {
const topic = await room.topic()
console.log(`Room: ${topic} Contact: ${contact.name()} Text: ${text}`)
} else {
console.log(`Contact: ${contact.name()} Text: ${text}`)
}
})
.start()
message.toRecalled() ⇒ Promise <Message | null>
Promise <Message | null>
Get the text content of the recalled message
Kind: instance method of Message
Example
const bot = new Wechaty()
bot
.on('message', async m => {
if (m.type() === bot.Message.Type.Recalled) {
const recalledMessage = await m.toRecalled()
console.log(`Message: ${recalledMessage} has been recalled.`)
}
})
.start()
message.say(textOrContactOrFileOrUrlLinkOrMiniProgram) ⇒ Promise <void>
Promise <void>
Reply a Text, Contact Card, Media File or Link message to the sender.
Tips: This function is depending on the Puppet Implementation, see puppet-compatible-table
Kind: instance method of Message
See: Examples/ding-dong-bot
Param
Type
Description
textOrContactOrFileOrUrlLinkOrMiniProgram
string
| Contact
| FileBox
| UrlLink
| MiniProgram
send text, Contact, UrlLink, MiniProgram or file to bot. You can use FileBox to send file
Example
import { FileBox } from 'file-box'
import {
Wechaty,
UrlLink,
MiniProgram,
} from 'wechaty'
const bot = new Wechaty()
bot
.on('message', async m => {
// 1. send Image
if (/^ding$/i.test(m.text())) {
const fileBox = FileBox.fromUrl('https://chatie.io/wechaty/images/bot-qr-code.png')
await msg.say(fileBox)
}
// 2. send Text
if (/^dong$/i.test(m.text())) {
await msg.say('dingdingding')
}
// 3. send Contact
if (/^lijiarui$/i.test(m.text())) {
const contactCard = await bot.Contact.find({name: 'lijiarui'})
if (!contactCard) {
console.log('not found')
return
}
await msg.say(contactCard)
}
// 4. send UrlLink
if (/^link$/i.test(m.text())) {
const urlLink = new UrlLink({
description: 'Wechaty is a Bot SDK for Wechat Individual Account which can help you create a bot in 6 lines of javascript, with cross-platform support including Linux, Windows, Darwin(OSX/Mac) and Docker.',
thumbnailUrl: 'https://camo.githubusercontent.com/f310a2097d4aa79d6db2962fa42bb3bb2f6d43df/68747470733a2f2f6368617469652e696f2f776563686174792f696d616765732f776563686174792d6c6f676f2d656e2e706e67',
title: 'Wechaty',
url: 'https://github.com/chatie/wechaty',
});
await msg.say(urlLink);
}
// 5. send MiniProgram (only supported by `wechaty-puppet-macpro`)
if (/^mini-program$/i.test(m.text())) {
const miniProgram = new MiniProgram ({
appid : 'gh_0aa444a25adc',
title : '我正在使用Authing认证身份,你也来试试吧',
pagePath : 'routes/explore.html',
description : '身份管家',
thumbUrl : '30590201000452305002010002041092541302033d0af802040b30feb602045df0c2c5042b777875706c6f61645f31373533353339353230344063686174726f6f6d3131355f313537363035393538390204010400030201000400',
thumbKey : '42f8609e62817ae45cf7d8fefb532e83',
});
await msg.say(miniProgram);
}
})
.start()
message.type() ⇒ MessageType
MessageType
Get the type from the message.
Tips: MessageType is Enum here. </br>
MessageType.Unknown
MessageType.Attachment
MessageType.Audio
MessageType.Contact
MessageType.Emoticon
MessageType.Image
MessageType.Text
MessageType.Video
MessageType.Url
Kind: instance method of Message
Example
const bot = new Wechaty()
if (message.type() === bot.Message.Type.Text) {
console.log('This is a text message')
}
message.self() ⇒ boolean
boolean
Check if a message is sent by self.
Kind: instance method of Message
Returns: boolean
- - Return true
for send from self, false
for send from others. Example
if (message.self()) {
console.log('this message is sent by myself!')
}
message.mention() ⇒ Promise <Contact []>
Promise <Contact []>
Get message mentioned contactList.
Message event table as follows
Web
Mac PC Client
iOS Mobile
android Mobile
[You were mentioned] tip ([有人@我]的提示)
✘
√
√
√
Identify magic code (8197) by copy & paste in mobile
✘
√
√
✘
Identify magic code (8197) by programming
✘
✘
✘
✘
Identify two contacts with the same roomAlias by [You were mentioned] tip
✘
✘
√
√
Kind: instance method of Message
Returns: Promise <Contact []>
- - Return message mentioned contactList Example
const contactList = await message.mention()
console.log(contactList)
message.mentionSelf() ⇒ Promise <boolean>
Promise <boolean>
Check if a message is mention self.
Kind: instance method of Message
Returns: Promise <boolean>
- - Return true
for mention me. Example
if (await message.mentionSelf()) {
console.log('this message were mentioned me! [You were mentioned] tip ([有人@我]的提示)')
}
message.forward(to) ⇒ Promise <void>
Promise <void>
Forward the received message.
Kind: instance method of Message
Param
Type
Description
to
Sayable
| Array
Room or Contact The recipient of the message, the room, or the contact
Example
const bot = new Wechaty()
bot
.on('message', async m => {
const room = await bot.Room.find({topic: 'wechaty'})
if (room) {
await m.forward(room)
console.log('forward this message to wechaty room!')
}
})
.start()
message.date() ⇒ Date
Date
Message sent date
Kind: instance method of Message
message.age() ⇒ number
number
Returns the message age in seconds.
For example, the message is sent at time 8:43:01
, and when we received it in Wechaty, the time is 8:43:15
, then the age() will return 8:43:15 - 8:43:01 = 14 (seconds)
Kind: instance method of Message
message.file()
Deprecated
use toFileBox instead
Kind: instance method of Message
message.toFileBox() ⇒ Promise <FileBox>
Promise <FileBox>
Extract the Media File from the Message, and put it into the FileBox.
Tips: This function is depending on the Puppet Implementation, see puppet-compatible-table
Kind: instance method of Message
message.toContact() ⇒ Promise <Contact>
Promise <Contact>
Get Share Card of the Message Extract the Contact Card from the Message, and encapsulate it into Contact class
Tips: This function is depending on the Puppet Implementation, see puppet-compatible-table
Kind: instance method of Message
message.toUrlLink() ⇒ Promise <UrlLink>
Promise <UrlLink>
Get Url Link of the Message Extract the Url Link from the Message, and encapsulate it into UrlLink class
Tips: This function is depending on the Puppet Implementation, see puppet-compatible-table
Kind: instance method of Message
Message.find() ⇒ Promise <Message | null>
Promise <Message | null>
Find message in cache
Kind: static method of Message
Message.findAll() ⇒ Promise <Message []>
Promise <Message []>
Find messages in cache
Kind: static method of Message
Last updated
Was this helpful?