官方推薦使用 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 亦可。
3. 開始開發
可以先仔細看看 中文文檔
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 的。