public class IcqHttpApi
extends java.lang.Object
| 限定符和类型 | 字段和说明 | 
|---|---|
protected BotAccount | 
account  | 
protected PicqBotX | 
bot  | 
| 构造器和说明 | 
|---|
IcqHttpApi(PicqBotX bot,
          BotAccount account,
          java.lang.String host,
          int port)
构造一个 HttpApi 发送对象 
 | 
| 限定符和类型 | 方法和说明 | 
|---|---|
RawReturnData | 
approveGroupRequest(java.lang.String flag,
                   java.lang.String type)
同意加群请求/邀请 
 | 
boolean | 
canSendImage()
检查是否可以发送图片 
 | 
boolean | 
canSendRecord()
检查是否可以发送语音 
 | 
void | 
cleanDataDir()
清空所有数据文件夹 
 | 
RawReturnData | 
cleanDataDir(java.lang.String dataDir)
清空数据文件夹 
 | 
RawReturnData | 
cleanPluginLog()
清空插件日志 
 | 
RawReturnData | 
deleteMsg(long messageId)
撤回消息 
 | 
ReturnData<RCookies> | 
getCookies()
抢走酷Q的曲奇饼w 
 | 
ReturnData<RCookies> | 
getCookies(java.lang.String domain)
抢走酷Q的曲奇饼w 
 | 
ReturnData<RCredentials> | 
getCredentials()
抢走酷Q的曲奇饼并获取CSRF Token 
 | 
ReturnData<RCsrfToken> | 
getCsrfToken()
获取CSRF Token 
 | 
ReturnListData<RFriend> | 
getFriendList()
获取好友列表 
 | 
ReturnListData<RFriendList> | 
getFriendListUnstable()
获取好友列表 
 | 
ReturnData<RGroupInfo> | 
getGroupInfo(long groupId)
获取群信息 
 | 
ReturnData<RGroupInfo> | 
getGroupInfo(long groupId,
            boolean noCache)
获取群信息 
 | 
ReturnData<RGroupDetail> | 
getGroupInfoUnstable(long groupId)
获取群信息 
 | 
ReturnListData<RGroup> | 
getGroupList()
获取群列表 
 | 
ReturnData<RGroupMemberInfo> | 
getGroupMemberInfo(long groupId,
                  long qq)
获取群成员信息, 默认不使用缓存 
 | 
ReturnData<RGroupMemberInfo> | 
getGroupMemberInfo(long groupId,
                  long qq,
                  boolean noCache)
获取群成员信息 
 | 
ReturnListData<RGroupMemberInfo> | 
getGroupMemberList(long groupId)
获取群成员列表 
 | 
ReturnListData<RGroupNotice> | 
getGroupNotices(long groupId)
获取一个群的所有公告 
 | 
ReturnData<RFile> | 
getImage(java.lang.String file)
获取图片文件完整路径 
 | 
java.io.File | 
getImageFile(java.lang.String file)
获取图片文件 (封装) 
 | 
ReturnData<RLoginInfo> | 
getLoginInfo()
获取登录号信息 
 | 
ReturnData<RFile> | 
getRecord(java.lang.String file,
         java.lang.String format,
         boolean fullPath)
获取语音文件 
 | 
ReturnData<RStatus> | 
getStatus()
获取插件运行状态 
 | 
ReturnData<RStrangerInfo> | 
getStrangerInfo(long qq)
获取陌生人信息, 默认不使用缓存 
 | 
ReturnData<RStrangerInfo> | 
getStrangerInfo(long qq,
               boolean noCache)
获取陌生人信息 
 | 
ReturnData<RVersionInfo> | 
getVersionInfo()
获取酷 Q 及 HTTP API 插件的版本信息 
 | 
ReturnData<RVipInfo> | 
getVIPInfo(long qq)
获取用户VIP信息 
 | 
java.lang.String | 
makeUrl(HttpApiNode api)
生成URL 
 | 
RawReturnData | 
rejectGroupRequest(java.lang.String flag,
                  java.lang.String type,
                  java.lang.String reason)
拒绝加群请求/邀请 
 | 
<T extends ReturnPojoBase> | 
send(java.lang.Class<T> type,
    HttpApiNode api,
    java.lang.Object... params)
发送请求 封装 
 | 
com.google.gson.JsonElement | 
send(HttpApiNode api,
    java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 
 | 
com.google.gson.JsonElement | 
send(HttpApiNode api,
    java.lang.Object... params)
发送请求 封装 
 | 
<T extends ReturnPojoBase> | 
send(java.lang.reflect.Type type,
    HttpApiNode api,
    java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 封装 
 | 
ReturnData<RMessageReturnData> | 
sendDiscussMsg(long groupId,
              java.lang.String message)
发送讨论组消息 
 | 
ReturnData<RMessageReturnData> | 
sendDiscussMsg(long groupId,
              java.lang.String message,
              boolean autoEscape)
发送讨论组消息 
 | 
ReturnData<RMessageReturnData> | 
sendGroupMsg(long groupId,
            java.lang.String message)
发送群聊消息 
 | 
ReturnData<RMessageReturnData> | 
sendGroupMsg(long groupId,
            java.lang.String message,
            boolean autoEscape)
发送群聊消息 
 | 
RawReturnData | 
sendGroupNotice(long groupId,
               java.lang.String title,
               java.lang.String content)
发布群公告 
 | 
RawReturnData | 
sendLike(long qq,
        long times)
发送好友赞 
 | 
ReturnData<RMessageReturnData> | 
sendPrivateMsg(long qq,
              java.lang.String message)
发送私聊消息 
 | 
ReturnData<RMessageReturnData> | 
sendPrivateMsg(long qq,
              java.lang.String message,
              boolean autoEscape)
发送私聊消息 
 | 
<T extends ReturnPojoBase> | 
sendReturnList(java.lang.Class<T> type,
              HttpApiNode api,
              java.lang.Object... params)
发送请求 封装 
 | 
<T extends ReturnPojoBase> | 
sendReturnList(java.lang.reflect.Type type,
              HttpApiNode api,
              java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 封装 
 | 
RawReturnData | 
sendReturnRaw(HttpApiNode api,
             java.util.Map<java.lang.String,java.lang.Object> params)
发送请求 封装 
 | 
RawReturnData | 
sendReturnRaw(HttpApiNode api,
             java.lang.Object... params)
发送请求 封装 
 | 
RawReturnData | 
setDiscussLeave(long discussId)
退出讨论组 
 | 
RawReturnData | 
setFriendAndRequest(java.lang.String flag,
                   boolean approve)
处理加好友请求 
 | 
RawReturnData | 
setFriendAndRequest(java.lang.String flag,
                   boolean approve,
                   java.lang.String remark)
处理加好友请求 
 | 
RawReturnData | 
setGroupAdmin(long groupId,
             long qq,
             boolean enable)
群组设置管理员 
 | 
RawReturnData | 
setGroupAndRequest(java.lang.String flag,
                  java.lang.String type,
                  boolean approve,
                  java.lang.String reason)
处理加群请求/邀请 
 | 
RawReturnData | 
setGroupAnonymous(long groupId,
                 boolean enable)
群组设置匿名 
 | 
RawReturnData | 
setGroupAnonymousBan(EventGroupMessage.Anonymous anonymous,
                    long groupId,
                    long duration)
群组匿名用户禁言 
 | 
RawReturnData | 
setGroupAnonymousBan(java.lang.String flag,
                    long groupId,
                    long duration)
群组匿名用户禁言 
 | 
RawReturnData | 
setGroupBan(long groupId,
           long qq,
           long duration)
群组单人禁言 
 | 
RawReturnData | 
setGroupCard(long groupId,
            long qq,
            java.lang.String card)
设置群名片 (群备注) 
 | 
RawReturnData | 
setGroupKick(long groupId,
            long qq)
群组踢人 
 | 
RawReturnData | 
setGroupKick(long groupId,
            long qq,
            boolean rejectFurtherRequest)
群组踢人 
 | 
RawReturnData | 
setGroupLeave(long groupId)
退出群组 
 | 
RawReturnData | 
setGroupLeave(long groupId,
             boolean dismiss)
退出群组 
 | 
RawReturnData | 
setGroupSpecialTitle(long groupId,
                    long qq,
                    java.lang.String specialTitle)
设置群组专属头衔 
 | 
RawReturnData | 
setGroupSpecialTitle(long groupId,
                    long qq,
                    java.lang.String specialTitle,
                    long duration)
设置群组专属头衔 
 | 
RawReturnData | 
setGroupWholeBan(long groupId,
                boolean enable)
群组全员禁言 
 | 
RawReturnData | 
setRestartPlugin()
重启 HTTP API 插件 
 | 
RawReturnData | 
setRestartPlugin(int delay)
重启 HTTP API 插件 
 | 
RawReturnData | 
setRestartUnsafe()
重启酷Q, 并以当前登录号自动登陆 (需要勾选快速登录) 
 | 
RawReturnData | 
setRestartUnsafe(boolean cleanLog,
                boolean cleanCache,
                boolean cleanEvent)
重启酷Q, 并以当前登录号自动登陆 (需要勾选快速登录) 
 | 
protected final PicqBotX bot
protected final BotAccount account
public IcqHttpApi(PicqBotX bot, BotAccount account, java.lang.String host, int port)
bot - 机器人account - 账号host - 主机地址port - 端口public java.lang.String makeUrl(HttpApiNode api)
api - API节点public com.google.gson.JsonElement send(HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
api - API节点params - 参数public com.google.gson.JsonElement send(HttpApiNode api, java.lang.Object... params)
api - API节点params - 参数public RawReturnData sendReturnRaw(HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
api - API节点params - 参数public RawReturnData sendReturnRaw(HttpApiNode api, java.lang.Object... params)
api - API节点params - 参数public <T extends ReturnPojoBase> ReturnData<T> send(java.lang.reflect.Type type, HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
T - 返回值的类型type - 返回数据类型api - API节点params - 参数public <T extends ReturnPojoBase> ReturnData<T> send(java.lang.Class<T> type, HttpApiNode api, java.lang.Object... params)
T - 返回值的类型type - 返回数据类型api - API节点params - 参数public <T extends ReturnPojoBase> ReturnListData<T> sendReturnList(java.lang.reflect.Type type, HttpApiNode api, java.util.Map<java.lang.String,java.lang.Object> params)
T - 返回值的类型type - 返回数据类型api - API节点params - 参数public <T extends ReturnPojoBase> ReturnListData<T> sendReturnList(java.lang.Class<T> type, HttpApiNode api, java.lang.Object... params)
T - 返回值的类型type - 返回数据类型api - API节点params - 参数public ReturnData<RMessageReturnData> sendPrivateMsg(long qq, java.lang.String message)
qq - QQ号message - 消息public ReturnData<RMessageReturnData> sendPrivateMsg(long qq, java.lang.String message, boolean autoEscape)
qq - QQ号message - 消息autoEscape - 是否纯文本发送public ReturnData<RMessageReturnData> sendGroupMsg(long groupId, java.lang.String message)
groupId - 群IDmessage - 消息public ReturnData<RMessageReturnData> sendGroupMsg(long groupId, java.lang.String message, boolean autoEscape)
groupId - 群IDmessage - 消息autoEscape - 是否纯文本发送public ReturnData<RMessageReturnData> sendDiscussMsg(long groupId, java.lang.String message)
groupId - 讨论组IDmessage - 消息public ReturnData<RMessageReturnData> sendDiscussMsg(long groupId, java.lang.String message, boolean autoEscape)
groupId - 讨论组IDmessage - 消息autoEscape - 是否纯文本发送public RawReturnData deleteMsg(long messageId)
messageId - 消息IDpublic RawReturnData sendLike(long qq, long times)
qq - QQ号times - 赞的次数,每个好友每天最多 10 次public RawReturnData sendGroupNotice(long groupId, java.lang.String title, java.lang.String content)
groupId - 群号title - 标题content - 内容public RawReturnData setGroupKick(long groupId, long qq)
groupId - 群号qq - QQpublic RawReturnData setGroupKick(long groupId, long qq, boolean rejectFurtherRequest)
groupId - 群号qq - QQrejectFurtherRequest - 拒绝这个人的加群请求public RawReturnData setGroupBan(long groupId, long qq, long duration)
groupId - 群号qq - QQduration - 禁言时长,单位秒,0 表示取消禁言public RawReturnData setGroupAnonymousBan(java.lang.String flag, long groupId, long duration)
flag - 要禁言的匿名用户的 flag (需从群消息上报的数据中获得)groupId - 群号duration - 禁言时长,单位秒,无法取消匿名用户禁言public RawReturnData setGroupAnonymousBan(EventGroupMessage.Anonymous anonymous, long groupId, long duration)
anonymous - 要禁言的匿名用户的 Anonymous对象 (需从群消息上报的数据中获得)groupId - 群号duration - 禁言时长,单位秒,无法取消匿名用户禁言public RawReturnData setGroupWholeBan(long groupId, boolean enable)
groupId - 群号enable - 是否禁言public RawReturnData setGroupAdmin(long groupId, long qq, boolean enable)
groupId - 群号qq - 要设置管理员的 QQ 号enable - true 为设置,false 为取消public RawReturnData setGroupAnonymous(long groupId, boolean enable)
groupId - 群号enable - 是否允许匿名聊天public RawReturnData setGroupCard(long groupId, long qq, java.lang.String card)
groupId - 群号qq - 要设置的 QQ 号card - 群名片内容,不填或空字符串表示删除群名片public RawReturnData setGroupLeave(long groupId)
groupId - 群号public RawReturnData setGroupLeave(long groupId, boolean dismiss)
groupId - 群号dismiss - 是否解散, 如果登录号是群主, 则仅在此项为 true 时能够解散public RawReturnData setGroupSpecialTitle(long groupId, long qq, java.lang.String specialTitle)
groupId - 群号qq - 要设置的QQ号specialTitle - 专属头衔,不填或空字符串表示删除专属头衔public RawReturnData setGroupSpecialTitle(long groupId, long qq, java.lang.String specialTitle, long duration)
groupId - 群号qq - 要设置的QQ号specialTitle - 专属头衔,不填或空字符串表示删除专属头衔duration - 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试public RawReturnData setDiscussLeave(long discussId)
discussId - 讨论组 ID (正常情况下看不到,需要从讨论组消息上报的数据中获得)public RawReturnData setFriendAndRequest(java.lang.String flag, boolean approve)
flag - 加好友请求的 flag (需从上报的数据中获得)approve - 是否同意请求public RawReturnData setFriendAndRequest(java.lang.String flag, boolean approve, java.lang.String remark)
flag - 加好友请求的 flag (需从上报的数据中获得)approve - 是否同意请求remark - 添加后的好友备注 (仅在同意时有效)public RawReturnData setGroupAndRequest(java.lang.String flag, java.lang.String type, boolean approve, java.lang.String reason)
flag - 加好友请求的 flag (需从上报的数据中获得)type - add 或 invite,请求类型 (需要和上报消息中的 sub_type 字段相符)approve - 是否同意请求/邀请reason - 拒绝理由 (仅在拒绝时有效)public RawReturnData approveGroupRequest(java.lang.String flag, java.lang.String type)
flag - 加好友请求的 flag (需从上报的数据中获得)type - add 或 invite,请求类型 (需要和上报消息中的 sub_type 字段相符)public RawReturnData rejectGroupRequest(java.lang.String flag, java.lang.String type, java.lang.String reason)
flag - 加好友请求的 flag (需从上报的数据中获得)type - add 或 invite,请求类型 (需要和上报消息中的 sub_type 字段相符)reason - 拒绝理由public RawReturnData setRestartPlugin()
public RawReturnData setRestartPlugin(int delay)
delay - 要延迟的毫秒数, 如果默认情况下无法重启, 可以尝试设置延迟为 2000 左右public RawReturnData setRestartUnsafe()
public RawReturnData setRestartUnsafe(boolean cleanLog, boolean cleanCache, boolean cleanEvent)
cleanLog - 是否在重启时清空酷Q的日志数据库 (logv1.db)cleanCache - 是否在重启时清空酷Q的缓存数据库 (cache.db)cleanEvent - 是否在重启时清空酷Q的事件数据库 (eventv2.db)public void cleanDataDir()
public RawReturnData cleanDataDir(java.lang.String dataDir)
dataDir - 要清理的目录名, 支持 image, record, show, bfacepublic RawReturnData cleanPluginLog()
public ReturnData<RLoginInfo> getLoginInfo()
public ReturnData<RStrangerInfo> getStrangerInfo(long qq, boolean noCache)
qq - QQ号noCache - 是否不使用缓存 (使用缓存可能更新不及时,但响应更快)public ReturnData<RStrangerInfo> getStrangerInfo(long qq)
qq - QQ号public ReturnData<RVipInfo> getVIPInfo(long qq)
qq - QQ号public ReturnListData<RGroup> getGroupList()
public ReturnData<RGroupMemberInfo> getGroupMemberInfo(long groupId, long qq, boolean noCache)
groupId - 群号qq - QQ 号 (不可以是登录号)noCache - 是否不使用缓存 (使用缓存可能更新不及时, 但响应更快)public ReturnData<RGroupMemberInfo> getGroupMemberInfo(long groupId, long qq)
groupId - 群号qq - QQ 号 (不可以是登录号)public ReturnData<RGroupDetail> getGroupInfoUnstable(long groupId)
groupId - 群号public ReturnData<RGroupInfo> getGroupInfo(long groupId, boolean noCache)
groupId - 群号noCache - 是否不适用缓存public ReturnData<RGroupInfo> getGroupInfo(long groupId)
groupId - 群号public ReturnListData<RGroupMemberInfo> getGroupMemberList(long groupId)
groupId - 群号public ReturnListData<RFriendList> getFriendListUnstable()
public ReturnListData<RFriend> getFriendList()
public ReturnData<RFile> getRecord(java.lang.String file, java.lang.String format, boolean fullPath)
file - 收到的语音文件名 (CQ码的file参数), 如 0B38145AA44505000B38145AA4450500.silkformat - 要转换到的格式, 目前支持 mp3, amr, wma, m4a, spx, ogg, wav, flacfullPath - 是否返回完整路径 (Windows环境下建议使用, Docker中不建议)public ReturnData<RFile> getImage(java.lang.String file)
file - 收到的图片文件名 (CQ码的file参数), 如 6B4DE3DFD1BD271E3297859D41C530F5.jpgpublic java.io.File getImageFile(java.lang.String file)
file - 收到的图片文件名 (CQ码的file参数), 如 6B4DE3DFD1BD271E3297859D41C530F5.jpgpublic ReturnListData<RGroupNotice> getGroupNotices(long groupId)
groupId - 群IDpublic boolean canSendImage()
public boolean canSendRecord()
public ReturnData<RVersionInfo> getVersionInfo()
public ReturnData<RCookies> getCookies()
public ReturnData<RCookies> getCookies(java.lang.String domain)
domain - 需要抢走曲奇的域名wpublic ReturnData<RCsrfToken> getCsrfToken()
public ReturnData<RCredentials> getCredentials()
public ReturnData<RStatus> getStatus()