const wx = require('wx-js-sdk');
const robot = require('robotjs');
wx.checkLogin()
.then((res) => {
if (res.code) {
const userID = 'user_a'; // 替换为实际的用户甲的微信ID
return getChatInputBoxNode(userID)
.then((inputBoxNode) => {
return getSendButtonNode(inputBoxNode)
.then((sendButtonNode) => {
return sendMessage(sendButtonNode, inputBoxNode)
.then(() => {
return sendMessage(sendButtonNode, inputBoxBoxNode, true) // 发送10000次消息,每5秒发送一次
.then(() => {
console.log('消息发送完毕');
})
.catch((err) => {
console.error(err);
});
})
.catch((err) => {
console.error(err);
});
})
.catch((err) => {
console.error(err);
});
})
.catch((err) => {
console.error(err);
});
} else {
console.log('未登录或登录态已过期');
}
})
.catch((err) => {
console.error(err);
});
function getChatInputBoxNode(userID) {
return new Promise((resolve, reject) => {
wx.getChatInputBoxNode({ success: (res) => {
const inputBoxNode = res.data;
resolve(inputBoxNode);
}, fail: (err) => {
reject(err);
} });
});
}
function getSendButtonNode(inputBoxNode) {
return new Promise((resolve, reject) => {
wx.getSendButtonNode({ success: (res) => {
const sendButtonNode = res.data;
resolve(sendButtonNode);
}, fail: (err) => {
reject(err);
} });
});
}
function sendMessage(sendButtonNode, inputBoxNode, isLastSend = false) {
return new Promise((resolve, reject) => {
const sendMessage = () => {
robot.typeString('遥遥领先!\n', inputBoxNode); // 在输入框中写入“遥遥领先!”
sendButtonNode.click(); // 发送消息
};
if (isLastSend) { // 如果是最后一次循环,直接发送消息并完成操作。否则,使用setTimeout延迟发送。
sendMessage(); // 发送消息。如果是最后一次循环,不需要等待5秒。