1.0.17 • Published 4 months ago

mysv v1.0.17

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

mysv

米游社大别野机器人js-sdk

  • 基于大别野开发文档 实现的js-sdk
  • 支持大部分接口调用
  • 支持网页版的正常收发消息功能
  • 若报错format: jwk可能是node版本太低,已知node14不支持,node16支持

Install:

> npm install mysv

Usage:

const {createBot, createUClient, fromMCode, segment} = require("./lib")

const app = createBot({
    bot_id: '',
    secret: '',
    ws: true,
    villa_id: 0,                              //上线机器人可以填0,没有上线的要填调试别野id
    pub_key: "-----BEGIN PUBLIC KEY-----\n" +
        "-----END PUBLIC KEY-----",
    callback_path: "/events",                 //回调路径
    mys_ck: ""                                //若为空则会要求扫码,但如果不配置则不会要扫码
})

const client = createUClient({
    uid: 123456789,              //用户登入时必须配置uid
    mys_ck: "",                  //可以不填,不填则会扫码登入,也可到网页中自己获取cookie填入
    ignore_self: true,           //是否忽略自己的消息,默认为true
})

/**
 * UClient监听事件处理
 */

client.on("online", () => {
    client.logger.info("登入成功!!!")
})

client.on("message", e => {
    console.log(e)
})

/**
 * 手动过验证样例,此样例只是展示过程
 * @param data 请求gt验证的参数,可能会出现use_v4
 * @Param cb 回调函数,将验证成功数据返回
 */
client.on("login.geetest", (data, cb) => {
    // 请求参数
    let query = `challenge=${p.challenge}&gt=${p.gt}&new_captcha=${p.new_captcha}&success=${p.success}`
    // 获取结果的key
    let key = crypto.createHash("md5").update(`challenge=${p.challenge}&gt=${p.gt}`).digest("hex")
    let timer = setInterval(async () => {
        let {data} = await axios.get("验证地址")
        if (data.code !== 0) return
        clearInterval(tim)
        // 将验证结果通过cb函数返回
        cb(data.data)
    }, 2000)
})

/**
 * Bot监听事件处理
 */

app.on("online", () => {
    app.logger.info("上线成功!!!")
})

app.on("SendMessage", e => {
    e.reply([
        segment.at("all"),
        segment.text("你好"),
        segment.image("https://iw233.cn/api.php?sort=random")
    ], true) //true表示属于回复消息
})

app.on("JoinVilla", e => {
    console.log(e)
})

app.on("DeleteRobot", e => {
    console.log(e)
})

app.on("CreateRobot", e => {
    console.log(e)
})

app.on("ClickMsgComponent", e => {
    console.log(e)
})

app.on("AddQuickEmoticon", e => {
    console.log(e)
})

app.on("AuditCallback", e => {
    console.log(e)
})

/**
 * 未捕获的异常处理
 */

process.on("unhandledRejection", error => {
    app.logger.error(error)
})

process.on("uncaughtException", error => {
    app.logger.error(error.message)
})

事件类型:

Bot回调事件

EventDescription
online启动成功
JoinVilla新成员加入别野
SendMessage发送消息
CreateRobot机器人被加入别野
DeleteRobot机器人被移出别野
AuditCallback审核回调
AddQuickEmoticon用户快捷表情回复
ClickMsgComponent点击组件事件
login.geetest获取cookie遇到gt验证

UClient回调事件

EventDescription
online登入成功
message.private接收私聊消息事件
message.villa接收别野消息事件
notice通知事件
login.geetest登入收到gt验证
其它
  • 我的别野ID:FZJkxKs,有问题可以到这里反馈
  • 验证地址可参考mys_geetest_demo 自行部署
1.0.17

4 months ago

1.0.16

4 months ago

1.0.15

4 months ago

1.0.14

5 months ago

1.0.13

5 months ago

1.0.12

5 months ago

1.0.11-beta-2

5 months ago

1.0.11-beta

5 months ago

1.0.11

5 months ago

1.0.10

5 months ago

1.0.9

5 months ago

1.0.8

5 months ago

1.0.7

5 months ago

1.0.6

5 months ago

1.0.5

5 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

8 months ago

1.0.0

8 months ago