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("这是要发的消息");
}
}其余事件和可操作对象
点击此处文档,跳转到官方使用文档。