Appearance
入群自动审批策略
概述
入群自动审批策略允许机器人自动处理入群申请。配置白名单号码后,命中白名单的申请将自动通过审批。
限制
- 一个机器人最多创建 20 个策略
- 单个策略白名单上限 10 万个号码
- 单次添加/删除最多 10000 个号码
快速上手
创建策略
java
import cn.org.bukkit.bngeuit.Bngeuit;
import cn.org.bukkit.bngeuit.dto.message.approval.StrategyEnable;
// 创建策略,关联指定群,启用状态
Bngeuit.createJoinApprovalStrategy(
List.of("group_openid_1", "group_openid_2"), // 关联群列表
null, // 或使用 QQ 群号:List.of("123456789")
StrategyEnable.ON, // 启用
(String) null, // 过期时间(null 默认一年)
"售后群自动审批" // 备注
);
// 使用毫秒时间戳设置过期时间
long expireAt = System.currentTimeMillis() + 365L * 24 * 60 * 60 * 1000; // 一年后
Bngeuit.createJoinApprovalStrategy(
List.of("group_openid_1"),
null,
StrategyEnable.ON,
expireAt,
"带过期时间的策略"
);查询策略列表
java
// 查询所有策略
JoinApprovalStrategyListResponse resp = Bngeuit.getJoinApprovalStrategies();
for (JoinApprovalStrategy strategy : resp.strategies()) {
System.out.println("策略ID: " + strategy.strategyId());
System.out.println("关联群: " + strategy.groupOpenids());
System.out.println("白名单数量: " + strategy.whitelistUserCount());
System.out.println("启用状态: " + strategy.isEnabled());
}管理白名单
java
import cn.org.bukkit.bngeuit.dto.message.approval.WhitelistUsersOp;
// 添加白名单号码
Bngeuit.updateWhitelistUsers(strategyId, WhitelistUsersOp.ADD,
List.of("1234567890", "9876543210"));
// 删除白名单号码
Bngeuit.updateWhitelistUsers(strategyId, WhitelistUsersOp.DEL,
List.of("1234567890"));执行策略
对策略关联的全部群发起全量扫描,命中白名单的入群申请自动审批通过:
java
Bngeuit.executeJoinApprovalStrategy(strategyId);
// 异步执行,约 10 分钟完成修改策略
java
import cn.org.bukkit.bngeuit.dto.message.approval.GroupAction;
// 停用策略
Bngeuit.updateJoinApprovalStrategy(strategyId, StrategyEnable.OFF, null, null, null);
// 添加关联群
Bngeuit.updateJoinApprovalStrategy(strategyId, null, null,
GroupAction.addOpenids(List.of("new_group_openid")), null);
// 删除关联群
Bngeuit.updateJoinApprovalStrategy(strategyId, null, null,
GroupAction.delOpenids(List.of("old_group_openid")), null);删除策略
java
Bngeuit.deleteJoinApprovalStrategy(strategyId);手动审批
除了自动审批,也可以手动处理入群申请:
java
import cn.org.bukkit.bngeuit.dto.message.approval.ApprovalAction;
// 查询入群申请
JoinRequestListResponse requests = Bngeuit.getJoinRequestList(groupOpenid, null, 20);
// 批准申请
Bngeuit.approveJoinRequest(groupOpenid, memberOpenid, joinRequestId);
// 拒绝申请
Bngeuit.reviewJoinRequest(groupOpenid, memberOpenid,
ApprovalAction.DECLINE, joinRequestId, "不符合入群条件", false);
// 拒绝并加入黑名单
Bngeuit.reviewJoinRequest(groupOpenid, memberOpenid,
ApprovalAction.DECLINE, joinRequestId, "违规用户", true);API 参考
JoinApprovalStrategy
入群自动审批策略:
| 字段 | 类型 | 说明 |
|---|---|---|
strategyId() | String | 策略 ID |
groupOpenids() | List<String> | 关联群 OpenID 列表 |
groupIds() | List<String> | 关联 QQ 群号列表 |
whitelistUserCount() | int | 白名单号码数量 |
isEnable() | StrategyEnable | 启用状态 |
expireAt() | String | 过期时间 |
createdAt() | String | 创建时间 |
updatedAt() | String | 更新时间 |
remark() | String | 备注 |
StrategyEnable
策略启用状态枚举:
| 枚举 | JSON 值 | 说明 |
|---|---|---|
ON | "on" | 启用 |
OFF | "off" | 关闭 |
ApprovalAction
审批动作枚举:
| 枚举 | JSON 值 | 说明 |
|---|---|---|
APPROVE | "approve" | 通过 |
DECLINE | "decline" | 拒绝 |
GroupAction
关联群增删操作(用于修改策略):
| 方法 | 说明 |
|---|---|
GroupAction.addOpenids(groupOpenids) | 添加关联群(OpenID) |
GroupAction.delOpenids(groupOpenids) | 删除关联群(OpenID) |
GroupAction.addIds(groupIds) | 添加关联群(QQ 群号) |
GroupAction.delIds(groupIds) | 删除关联群(QQ 群号) |
