Skip to main content

Dealing with message

Messages

Automation of messages can be done easily with wechaty onMessage function. This guide will give you a step by step overview of how to respond to self messages or messages in a room.

Prerequisites

  • Your system must have Node.js installed (version >= 16).
  • Your system must have Wechaty (version >= 0.40).
  • You need to be familiar with the basics of Wechaty platform. If not, follow our tutorials section.
  • You need to have at least a minimal application ready to work, follow one of our Example/Ding-dong-bot.

If you don't know where to start from

See Running our first ding-dong bot.

There are various message type such as MessageType.Text, MessageType.Image, MessageType.Video, MessageType.Url, MessageType.Emotions, MessageType.Attachment. Some of the function are mentioned below and require a basic script that can help run the bot. The basic script starts by importing the code from Github/Ding-dong-bot.Integrate the below code, for this action to work.

Mention

Use this Mention feature to send a (@ mention) to others in the room.This function works if the message received by the onMessage function belongs to a room.

import { Message } from 'wechaty'

async function onMessage(message: Message): Promise<void> {
if (await message.mentionSelf()) {
const room = message.room()
if (!room) {
throw new Error('Should never reach here: a mention message must in a room')
}

console.info(message.text())
// "@bot Hello"
console.info(await message.mentionList())
// [bot]
console.info(await message.mentionText())
// "Hello"

const talker = room.talker()
await room.say`Thanks for mention me! ${talker}`
}
}

bot.on('message', onMessage)

The expected output of the JavaScript code is: Message

Self message

Use this Self message feature to reply to the bot.This function works if the message received by the onMessage function has been sent by the bot to itself.

import { Message } from 'wechaty'

async function onMessage(message: Message): Promise<void> {
if (message.self()) {
const talker = message.talker()
const bot = message.wechaty.userSelf()
assert(talker === bot, 'Message is sent from bot')
console.info('Message is sent from bot')
}
}

bot.on('message', onMessage)

The expected output of the JavaScript code is: Message