go-cqhttp项目的PHP版SDK,拥有完整注释和代码提示
composer require itwmw/go-cq-http-sdk
$api = new Itwmw\GoCqHttp\Api();
// 发送私聊消息
$api->message->sendMsg('测试消息', 'private', 995645888);
SDK内置消息的处理:
$server = $api->getServer();
你可以通过中间件模式来处理消息:
use Itwmw\GoCqHttp\Data\Post\BasePostMessage;
$server->addHandler(function(BasePostMessage $message, \Closure $next) {
// 处理消息
return $next($message);
})->addHandler(function(BasePostMessage $message, \Closure $next) {
// 处理消息
return $next($message);
})->addHandler(function(BasePostMessage $message, \Closure $next) {
// 处理消息
return $next($message);
})->addHandler(function(BasePostMessage $message, \Closure $next) {
// 处理消息
return $next($message);
});
echo $server->handle();
use Itwmw\GoCqHttp\Data\Post\BasePostMessage;
class MessageHandle
{
public function __invoke(BasePostMessage $message, \Closure $next)
{
// 处理消息
return $next($message);
}
}
$server->addHandler(MessageHandle::class);
也支持
callable
类型的处理器
use Itwmw\GoCqHttp\Data\Struct\Enum\PostMessageType;
use Itwmw\GoCqHttp\Data\Post\Message\PrivateMessage;
$server->addMessageListener(PostMessageType::PRIVATE, function (PrivateMessage $message, \Closure $next) {
// 处理消息
return $next($message);
});
use Itwmw\GoCqHttp\Data\Struct\Enum\PostNoticeType;
use Itwmw\GoCqHttp\Data\Post\Notice\GroupIncreaseNotice;
$server->addNoticeListener(PostNoticeType::GROUP_INCREASE, function (GroupIncreaseNotice $message, Closure $next) {
// 处理群成员增加
return $next($message);
});
同样也支持使用独立的类来处理消息
部分类型的消息支持快捷操作,快捷操作的方法为 response
,例:
use Itwmw\GoCqHttp\Data\Post\Message\PrivateMessage;
$server->addMessageListener(PostMessageType::PRIVATE, function (PrivateMessage $message, \Closure $next) {
if ('再见' === $message->message) {
return $message->response('bye~');
}
return $next($message);
});
Bot账号相关的Api
$api->bot;
API | 功能 |
---|---|
getLoginInfo | 获取登录号信息 |
setQqProfile | 设置登录号资料 |
qiDianGetAccountInfo | 获取企点账号信息 |
getModelShow | 获取在线机型 |
setModelShow | 设置在线机型 |
getOnlineClients | 获取当前账号在线客户端列表 |
好友相关的Api
$api->friend;
API | 功能 |
---|---|
getStrangerInfo | 获取陌生人信息 |
GetFriendList | 获取好友列表 |
getUnidirectionalFriendList | 获取单向好友列表 |
deleteFriend | 删除好友 |
deleteUnidirectionalFriend | 删除单向好友 |
getOnlineClients | 获取当前账号在线客户端列表 |
消息相关的Api
$api->message;
API | 功能 |
---|---|
sendPrivateMsg | 发送私聊消息 |
sendGroupMsg | 发送群聊消息 |
sendMsg | 发送消息 |
getMsg | 获取消息 |
deleteMsg | 撤回消息 |
markMsgAsRead | 标记消息已读 |
getForwardMsg | 获取合并转发内容 |
sendGroupForwardMsg | 发送合并转发 ( 群聊 ) |
sendPrivateForwardMsg | 发送合并转发 ( 好友 ) |
getGroupMsgHistory | 获取群消息历史记录 |
图片相关的Api
$api->image;
API | 功能 |
---|---|
getImage | 获取图片信息 |
canSendImage | 检查是否可以发送图片 |
ocrImage | 图片 OCR |
语音相关的Api
$api->record;
API | 功能 |
---|---|
getRecord | 获取语音 |
canSendRecord | 检查是否可以发送语音 |
处理请求相关的Api
$api->request;
API | 功能 |
---|---|
setFriendAddRequest | 处理加好友请求 |
setGroupAddRequest | 处理加群请求/邀请 |
群信息相关的Api
$api->groupInfo;
API | 功能 |
---|---|
getGroupInfo | 获取群信息 |
getGroupList | 获取群列表 |
getGroupMemberInfo | 获取群成员信息 |
getGroupMemberList | 获取群成员列表 |
getGroupHonorInfo | 获取群荣誉信息 |
getGroupSystemMsg | 获取群系统消息 |
getEssenceMsgList | 获取精华消息列表 |
getGroupAtAllRemain | 获取群 @全体成员 剩余次数 |
群设置相关的Api
$api->groupSetting;
API | 功能 |
---|---|
setGroupName | 设置群名 |
setGroupPortrait | 设置群头像 |
setGroupAdmin | 设置群管理员 |
setGroupCard | 设置群名片 ( 群备注 ) |
setGroupSpecialTitle | 设置群组专属头衔 |
群操作相关的Api
$api->groupAction;
API | 功能 |
---|---|
setGroupBan | 群单人禁言 |
setGroupWholeBan | 群全员禁言 |
setGroupAnonymousBan | 群匿名用户禁言 |
setEssenceMsg | 设置精华消息 |
deleteEssenceMsg | 移出精华消息 |
sendGroupSign | 群打卡 |
setGroupAnonymous | 群设置匿名 |
sendGroupNotice | 发送群公告 |
getGroupNotice | 获取群公告 |
setGroupKick | 群组踢人 |
setGroupLeave | 退出群组 |
群文件相关的Api
$api->groupFile;
API | 功能 |
---|---|
uploadGroupFile | 上传群文件 |
deleteGroupFile | 删除群文件 |
createGroupFileFolder | 创建群文件文件夹 |
deleteGroupFolder | 删除群文件文件夹 |
getGroupFileSystemInfo | 获取群文件系统信息 |
getGroupRootFiles | 获取群根目录文件列表 |
getGroupFilesByFolder | 获取群子目录文件列表 |
getGroupFileUrl | 获取群文件资源链接 |
uploadPrivateFile | 上传私聊文件 |
Go-CqHttp相关的Api
$api->cq;
API | 功能 |
---|---|
getCookies | 获取 Cookies |
getCsrfToken | 获取 CSRF Token |
getCredentials | 获取 QQ 相关接口凭证 |
getVersionInfo | 获取版本信息 |
getStatus | 获取状态 |
cleanCache | 清理缓存 |
reloadEventFilter | 重载事件过滤器 |
downloadFile | 下载文件到缓存目录 |
checkUrlSafely | 检查链接安全性 |
getWordSlices | 获取中文分词 ( 隐藏 API ) |
handleQuickOperation | 对事件执行快速操作 ( 隐藏 API ) |
CQ 码支持
对应的类 | 功能 |
---|---|
Itwmw\GoCqHttp\CqCode\Face |
QQ 表情 |
Itwmw\GoCqHttp\CqCode\Record |
语音 |
Itwmw\GoCqHttp\CqCode\Video |
短视频 |
Itwmw\GoCqHttp\CqCode\At |
@某人 |
Itwmw\GoCqHttp\CqCode\Share |
链接分享 |
Itwmw\GoCqHttp\CqCode\Music |
音乐分享 |
Itwmw\GoCqHttp\CqCode\MusicCustom |
自定义音乐分享 |
Itwmw\GoCqHttp\CqCode\Image |
图片 |
Itwmw\GoCqHttp\CqCode\Reply |
回复 |
Itwmw\GoCqHttp\CqCode\RedBag |
红包 |
Itwmw\GoCqHttp\CqCode\Poke |
戳一戳 |
Itwmw\GoCqHttp\CqCode\Gift |
礼物 |
Itwmw\GoCqHttp\CqCode\Forward |
合并转发 |
Itwmw\GoCqHttp\CqCode\Xml |
XML 消息 |
Itwmw\GoCqHttp\CqCode\Json |
JSON 消息 |
Itwmw\GoCqHttp\CqCode\CardImage |
装逼大图 |
Itwmw\GoCqHttp\CqCode\Tts |
文本转语音 |
发送:
use Itwmw\GoCqHttp\Api;
use Itwmw\GoCqHttp\CqCode\Tts;
$api = new Api();
$tts = new Tts('你好');
$api->message->sendMsg($tts, user_id: 995645888);
解析接受到的消息:
$msg = "[CQ:share,url=https://www.baidu.com/,title=百度一下,content=百度一下,你就知道,image=https://www.baidu.com/img/bd_logo1.png]";
$share = Share::create($msg);
print_r($share);
//Itwmw\GoCqHttp\CqCode\Share Object
//(
// [url] => https://www.baidu.com/
// [title] => 百度一下
// [content] => 百度一下,你就知道
// [image] => https://www.baidu.com/img/bd_logo1.png
//)
echo $share;
// [CQ:share,url=https://www.baidu.com/,title=百度一下,content=百度一下,你就知道,image=https://www.baidu.com/img/bd_logo1.png]
QQ群: 852297017