官方推荐使用 golang ,对于前端人员的学习门槛还是有一些。所以在这里发布一个 js 写的教程。
读完此篇文章您将获得:
一个收到消息会自动回复 hello mixin 的机器人。
1. 开发基础
- node 环境,笔者目前使用
v10.15.1
,更高亦可。 - JavaScript 语法基础
- Mixin 机器人
session
及secret
2. 开发之前
能够找到并读到这篇文章,想必对 Mixin 以及 Mixin Messenger 都比较熟知。所以申请 Mixin 机器人的 session
和 secret
并不是本文的主要内容。如有需要请进传送门 Mixin Messenger 机器人接入指南
这个时候,你应该已经获取到了 Mixin 的
session
文件 和secret
信息。
session文件: 类似 keystore-7000xxxxxx.json
的一个文件。
secret: 64 位的一个长字符串。
3. 正式开发
其实开发也比较简单。主要依赖 npm
上的一个库 mixin-node-sdk
。
- 创建并初始化工程
mkdir js-mixin-bot
cd js-mixin-bot
touch index.js
npm init -y
- 安装核心库
npm install mixin-node-sdk
推荐使用 yarn ,或者 cnpm 亦可。
- 开始开发
可以先仔细看看 中文文档
const { MixinSocket } = require('mixin-node-sdk')
const CLIENT_CONFIG = {
client_id: '2cc0c869-xxxx-xxxx-xxxx-5b4a99fea2a9',
client_secret: 'f3689c1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx562b4ff12882fc3bdf',
pin: '918869',
session_id: '1510f69c-xxxx-xxxx-xxxx-32560e710cb0',
pin_token: 'LLqI71tUUG0T6J1fZ7piKjrzx/hYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1BH7H+NXlV5mLgZ/TGEyPf0UdhgQWZW+33jSveg2YGczfrH667XqwMsO0poYUE0SKy+DlEmV6L4yKG40/aAQ9wNcMpW8zDm7O/r5OtH9o=',
private_key: `-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcGc250iYf+F7aMr
xPmKo+zlKCxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Q2xG+F5/ouLfu3
1cBwdZVYoJxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxGkLetuu6QIDAQAB
AoGAFoVnjSxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxE7gnhOc8S4SO96F
7FO3ITwVuKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyD/U2kzT0iCwCc4
yr8i6IJ2L4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQDRn9OIpGLoFE16
FMDe3eHk40xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxKcWaOsOzWnin9v1
v4mLyw3XAkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxNytyRrUNjP9hGIp
UDsh0XJpJcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6qCn1YDEn3b5iq8
ta/775fPH2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkgUXm6KRQJAPP2m
2rZhA5abZExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrnF+cyi5ufEfMcz
l4LzCpjTmfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfE8l2D1wQvwsa1/
fJ8KHnfjWjERGVnquCUm73MDJnXxqbivoXolv4tkuA==
-----END RSA PRIVATE KEY-----
`
}
let socket_client = new MixinSocket(CLIENT_CONFIG)
// 1. 重写这个接受消息的函数
// 注意:有一个参数 message
socket_client.get_message_handler = async function (message) {
if (!message.action || message.action === 'ACKNOWLEDGE_MESSAGE_RECEIPT' || message.action === 'LIST_PENDING_MESSAGES') {
return;
}
if (message.error) {
console.log(message.error)
return
}
if (message.data.category === '') return
// 获取消息
console.log(message)
// 执行已读消息
this.read_message(message)
// 发送文本消息
this.send_text('hello mixin', message)
}
// 2. 打开 websocket
socket_client.start()
- 启动
node index.js
结束...
去掉注释和配置的 config 信息,大概只需要4~5行就完成去你的机器人里试试吧。
发送任意信息,都会给你回复 hello mixin 的。
有疑问加站长微信联系(非本文作者)