project,

带货机器人(wechat robot seller)

一路向北 一路向北 Follow Jun 30, 2020 · 1 min read
带货机器人(wechat robot seller)

Wechaty Badge Everything about Wechaty

背景

疫情期间基于淘宝客的接口写了一个网站烙馍省钱https://tb-m.luomor.com/ ,而推广对于程序员来说很难实施,现在有很多基于社区的推广微信群,因此想做一个带货机器人,之前接触过wechaty,只是之前基于web协议,昨天试了一下微信不让在web页面登录了

通过一番学习之后,看到了新的ipad协议,有C#版本的但是很久没有人维护了,看到wechaty的puppet-padplus,基于RPC实现的版本,将ipad协议封装到了server端,还是很方便的

功能

  • 商品搜索

通过监听用户输入的关键字,回复此关键字的检索地址

实现逻辑

wechaty具体有如下模块:

  • FriendShip:主要处理好友请求
  • Message:处理消息模块
  • Contact:好友管理
  • 当wechaty实例监听到某一事件触发时,会去执行对应的消息监听逻辑。
  • 这样看来,其实主要的操作逻辑在于消息模块,也就是message事件触发时,处理消息内容,根据用户消息内容,返回关键字检索URL地址。

依赖

  • wechaty:wechaty核心库
  • wechaty-puppet-padplus:wechaty的ipad协议实现

实现过程

if(msgText.trim() !== "") {
    var room;
    var url = "https://tb-m.luomor.com/#/searchlist/" + msgText;
    //https://docs.chatie.io/api/message
    const urlLink = new UrlLink({
        description: '烙馍省钱[' + msgText + ']',
        thumbnailUrl: 'https://img.alicdn.com/imgextra/i4/790237325/O1CN01hY4aU523ytm2F4HxA_!!790237325.jpg?t=1586059949000',
        title: '烙馍省钱',
        url: url,
    });
    for(let roomId of CouponRooms) {
        room = await bot.Room.load(roomId);
        room.say(urlLink);
    }
}

<a name="OFtbO"></a>

本地运行

  1. 克隆项目
git clone ghttps://github.com/zhangchunsheng/wechat-robot-seller.git
cd wechat-robot-seller/v1
  1. 安装依赖
npm install
  1. 启动项目
node bot.js

效果图

效果图

致谢

  • 感谢Wechaty团队提供微信机器人SDK,让开发者可以专注于业务代码。
  • 感谢句子互动提供的pad协议版token,看到很多基于dll的实现,太费时就没有研究了

作者: PeterZhang Code: Github

Join Newsletter
Get the latest news right in your inbox. We never spam!
Written by 一路向北
I am a full-stack Software Engineer in Beijing.