原文地址:https://alphahinex.github.io/2021/02/21/wechat-mp-services/
description: "基于未认证订阅号的功能受限版本"
date: 2021.02.21 10:36
categories:
- Others
tags: [Others]
keywords: 微信, 微信公众号, 自动回复, 订阅号, 机器人, hubot
在知道了 Hubot 之后,就一直想在微信里也有一个类似的机器人。虽然也有不少微信的 hubot adapter,但基本都是基于网页版微信实现的,而微信对网页版微信的态度,让人深刻的感受到,作为国内的超级 App 所承担的责任。
之后在 Slack 中用了一段 Hubot,还是挺不错的,但是在国内使用 Slack,无论是桌面端还是移动端,还都是有些难度和不稳定的。
微信公众平台,给出了一个微信官方支持的,微信机器人的实现方式,公众平台提供的接口比较有限,尤其是对未认证的订阅号,提供的接口更少,但基本的被动回复消息的功能还是有的,这就给出了一定的空间来让我们在微信中,实现一个问答方式的机器人。
实例
先看看实例,可以关注 AlphaHinex 进行体验。
查询汉字笔顺
向公众号发送单个汉字,回复该汉字的笔顺。如:
发送 何
得到:
生成二维码
发送 qr <content>
,会得到 <content>
内容对应的二维码图片。如:
发送 qr https://alphahinex.github.io
得到:
Google 搜索
发送 g <content>
,得到使用 Google 搜索的前 10 条记录。如:
实时十大 Hacker News
发送 hn
,得到类似如下内容:
base64/unicode 编解码
使用 base64 及 unicode 关键字,加 encode 和 decode,进行对应的编解码:
抽奖
发送带 牛
四字消息,得到抽奖结果演示文字:
回声
发送其他无特定含义的消息内容,会将内容原封不动的返回,并增加 , you said.
后缀,如:
源码
源码 仿照 Hubot 的目录结构,将每类回复的脚本作为一个单独的文件,放在了 scripts
路径下。入口文件为 wechat-mp-server.js
。
受限于订阅号的 被动回复用户消息 机制,只能被动响应用户发送过来的消息,并且只能回复一次;回复消息的类型、内容及长度,也都是有一定的限制的;回复图片等内容时,还需要先上传到公众号的素材库……
不过这种 请求 - 响应
的模式,也是能够实现一些好玩的功能的,比如 ChatOps 等。您有什么有趣的想法吗?或者,直接提个 PR 也是欢迎的!