使用 JS 建立一個 Mixin Messenger 機器人

官方推薦使用 golang ,對於前端人員的學習門檻還是有一些。所以在這裏發佈一個 js 寫的教程。

讀完此篇文章您將獲得:

一個收到消息會自動回覆 hello mixin 的機器人。

1. 開發基礎

  • node 環境,筆者目前使用v10.15.1,更高亦可。
  • JavaScript 語法基礎
  • Mixin 機器人 sessionsecret

2. 開發之前

能夠找到並讀到這篇文章,想必對 Mixin 以及 Mixin Messenger 都比較熟知。所以申請 Mixin 機器人的 sessionsecret 並不是本文的主要內容。如有需要請進傳送門 Mixin Messenger 機器人接入指南

這個時候,你應該已經獲取到了 Mixin 的 session 文件 和 secret 信息。

session文件: 類似 keystore-7000xxxxxx.json 的一個文件。
secret: 64 位的一個長字符串。

3. 正式開發

其實開發也比較簡單。主要依賴 npm 上的一個庫 mixin-node-sdk

  1. 創建並初始化工程
mkdir js-mixin-bot
cd js-mixin-bot
touch index.js
npm init -y
  1. 安裝核心庫
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()
  1. 啓動
node index.js
  1. 結束…
    去掉註釋和配置的 config 信息,大概只需要4~5行就完成

  2. 去你的機器人裏試試吧。
    發送任意信息,都會給你回覆 hello mixin 的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章