Nodejs使用ICQQ搭建QQ机器人
502字约2分钟
2024-06-22
介绍
QQ机器人 是一个基于 icqq 框架搭建,它可以帮助你快速搭建一个 QQ 机器人。
项目目录
├── src
│ ├── group.ts
│ ├── client.ts
│ └── ....
├── config.ts 机器人基础配置
├── index.ts
└── package.json
入口文件index.ts
const { USER_CARD, USER_PASSWORD } = require('../../config')
// 引入机器人创建实例
const { createClient } = require('icqq')
const client = createClient({
/** 登录方式 */
platform: 3
})
// 监听登录验证
client.on('system.login.slider', (e) => {
console.log('输入滑块地址获取的ticket后继续。\n滑块地址:\n' + e.url)
process.stdin.once('data', (data) => {
client.submitSlider(data.toString().trim())
})
})
//监听扫码登录结果
client.on('system.login.qrcode', () => {
console.log('扫码完成后回车继续: ')
process.stdin.once('data', () => {
client.login()
})
})
// 监听选择验证方式
client.on('system.login.device', (e) => {
console.log('请选择验证方式:(1:短信验证 其他:扫码验证)')
process.stdin.once('data', (data) => {
if (data.toString().trim() === '1') {
client.sendSmsCode()
console.log('请输入手机收到的短信验证码:')
process.stdin.once('data', (res) => {
client.submitSmsCode(res.toString().trim())
})
} else {
console.log('扫码完成后回车继续:' + e.url)
process.stdin.once('data', () => {
client.login()
})
}
})
})
//监听上线成功
client.on("system.online", () => {
// 可调用自己写的一些机器人事务
})
// 账号密码登录
client.login(USER_CARD, USER_PASSWORD)
配置文件config.ts
内置很多公共变量启动,可根据自己需求修改器
// config.ts 内容
export const USER_CARD = '你的QQ号'
export const USER_PASSWORD = '你的密码'
export const NAME = '机器人名字'
// ......
创建机器人实例client.ts
// client.ts 内容
const { createClient } = require('icqq')
export default createClient({
/** 登录方式 */
platform: 3
})
群组消息处理文件group.ts
初步监听群消息,可自行扩展
// group.ts 内容
import client from './client.ts'
export default class Group {
constructor() {
// 监听所有群消息
client.on('message.group', (e) => {
})
}
/** AI自动回复实列 */
static AiChat(e){
// 发送者id,发送的信息,群id
const{user,message,group_id} =e
// message 是数组,因为存在图文一起发的情况。
// .....
// .....
// 处理完后决定要发的信息
e.reply('这是要发的消息')
}
}
其余事件和可操作对象
点击此处文档,跳转到官方使用文档。