/go-cq-http-sdk

go-cqhttp的PHP SDK

Primary LanguagePHPApache License 2.0Apache-2.0

go-cqhttp

go-cqhttp-sdk

go-cqhttp项目的PHP版SDK,拥有完整注释和代码提示

license release php-version

文档 · 下载 · 开始使用

安装

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