用nodejs开发pc微信机器人,保存有用的消息
发布于 5 年前 作者 pchook 6042 次浏览 来自 分享

从海量群消息中获取自己需要的消息

现在微信消息太多了, 根本看不过来,没时间一个群一个群的看过去 为了节约时间,获取对自己有用的消息 可以对PC微信消息进行获取处理

下面这个sdk是通过http的方式来获取微信消息的

nodejs sdk

https://github.com/pchook/WechatHttpApiWeb/blob/master/nodejs/sdk/app.js

通过修改onmsg.js中消息处理事件

function checkMsg(o) {
    if (o.msg.length <= 5) return '或者消息太短';//什么嗯嗯啊啊噢噢的都过滤掉
    let whiteList = ['相亲', '吃饭', '接单', '私活', '活动']
        //白名单,关键词通过
        , blackList = ['垃圾词一', '垃圾词二', '垃圾词三']
    //黑名单,关键词拦截
    if (blackList.some(function (k) { return o.msg.includes(k) })) return '命中黑名单,直接跳过'//命中黑名单,跳过
    let existPhone = /[1][3,4,5,6,7,8,9][0-9]{9}/.test(o.msg)//是否存在手机号,可以看一下
    if (existPhone || whiteList.some(function (k) { return o.msg.includes(k) })) return ''//有手机号 或者 命中白名单,保存
    return '不符合条件'
}
async function onmsg(datas) {
    let ok = 0;//这个是记录处理有用的消息的条数
    for (let o of datas) {
        if (o.type != 1) continue//不是文本消息直接跳过
        let res = checkMsg(o)
        if (res) {
            //不符合条件
            log('NOT', `[${res}][${o.wxid}][${o.sender}]${o.msg}`)
        } else {
            ok++
            //符合条件,保存
            let execMsg = await save(o)
            log('YES', `[${res}][${o.wxid}][${o.sender}]${o.msg}\r\nsql语句执行结果:${JSON.stringify(execMsg || '{}')}`)
        }
    }
    return ok
}
5 回复

实测可以嘛???这个感觉很有意思啊

@quanpf2481 是可以用的,收集消息还是很方便的

@pchook 我看代码好像还不是很完整,现在可以跑起来了嘛,需要什么环境跑起来呢

@quanpf2481 现在已经很稳定了,到这里下载apiServer然后解压运行就可以了,就自动开启http服务了。 https://github.com/pchook/WechatHttpApiWeb/releases http api接口文档可以看这个 https://pchook.github.io/WechatHttpApiWeb/ 调用的代码是还不完整,自己用node进行http请求就可以了 基本收发消息很方便,已经可以满足大部分需求了 期待你写一个node调用的完整代码

@pchook 楼主那边是用在什么场景呢???还是说有特殊的行业需要这个,我这边也是需要这样的使用情况的

回到顶部