首先,确保你有QQ开放平台群机器人权限

权限来源:

1:参加腾讯开发者编程大赛(已结束,下一届不知道什么时候

2:拥有企业执照和对公账户,然后注册并入驻腾讯开放平台

3:高校高级人才或企业,被腾讯特邀开发(目前不招个人

当前QQBot已对个体全面开放公测!

当你拥有官方机器人后,你还需要以下设备:

1:公网设备

2:TRSS版本的TRSS崽

3:QQBot账号信息

4:正常的大脑

第一步:将你的QQBOT和你的公网IP绑定(狗腾讯,原来是没有这一步的,说是为了安全考虑,加了这个)。

第二步:配置你的崽

修改完成后,按CTRL+Q

然后按Y确认保存

之后回车

然后按Q回到菜单

启动崽后,在终端输入并回车

1
#安装QQBot-Plugin

之后,去QQ开放平台复制你的QQBot信息

之后按格式在终端输入一下内容:

#QQBot设置[账号]:[ID]:[Token]:[AppSecret]:1:[频道公域或私域]

举例:

机器人QQ号:114514

机器人ID:9523

Token :321

AppSecret 1234567

频道公域

1
#QQBot设置114514:9523:321:1234567:1:0

目前最新的QQBOT默认是公域,私域的自己改去

傻逼腾讯又瞎几把的改东西,同一个公司,昨天申请的时候给的是私域,今天注册给的公域,为了推广频道机器人无所不用其极,也不看看频道现在改版改的多烂,开发文档写的多烂

要改私域的自己进沙盒改(也建议改私域)

修改完成后按照例子里吧后面改为1就行

1
#QQBot设置114514:1145149191:321:1234567:1:1

之后艾特你的机器人发:

1
#设置主人

之后回复机器人后台的验证码即可(注意艾特后面的空格

附加功能:

TRSS崽默认是开启/转#的

官方机器人也默认使用的/

但是开启/转#后,一些原本就使用/指令的插件可能会异常,无法使用

所以建议还是关了好,后面自己改插件正则表达式(大部分都在插件目录下的apps文件夹中,星铁这些内置的在lib/plugins

目前/转#的功能在config/config/bot.yaml里面

其他功能:

目前官BOT非2000月活不提供MD权限

比赛内测期间的老BOT也在陆续回收,低于400日活全无MD权限了(内邀原生的除外)

目前普BOT只能根据按钮ID发静态按钮

按钮配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const buttonMessage = segment.raw({
type: 'keyboard',
id: '102314156_1735552310', // 按钮模板ID
});

// 返回渲染的页面和按钮模板
let ret = await e.reply([
await Common.render(
'help/index',
{
helpCfg: helpConfig,
helpGroup,
...themeData,
element: 'default',
},
{ e, scale: 1.2 }
)
]);
await e.reply([buttonMessage]);
return ret;
},

完整示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { segment } from "oicq";

export class CustomButtonPlugin extends plugin {
constructor() {
super({
name: '自定义按钮插件',
dsc: '欢迎使用普罗米修斯,以下是普罗米修斯的功能详情',
event: 'message',
priority: -100,
rule: [
{
reg: "^#帮助$",
fnc: 'sendButtonMessage'
}
]
});
}

async sendButtonMessage(e) {
// 创建纯文本消息
const textMessage = "欢迎使用普罗米修斯,以下是为了方便而设置的功能分区";

// 定义按钮数据
const buttonData = {
type: "keyboard",
id: "102314156_1735557246", // 按钮ID
buttons: [
{
label: "申请使用",
visited_label: "已点击",
style: 1, // 按钮样式:1 表示正向按钮(绿色)
action: {
type: "url",
url: "https://example.com" // 替换为实际链接
}
}
]
};

try {
// 发送纯文本消息
await e.reply(textMessage);

// 发送按钮消息
await e.reply(segment.raw(buttonData));
} catch (error) {
console.error('发送按钮消息出错:', error);
await e.reply("按钮消息发送失败,请稍后重试。");
}
}
}