其它 API 介绍
约 3247 字大约 11 分钟
2025-02-07
重要接口
发送私聊/群聊合并转发消息
注意
此接口和 NapCat 同名接口参数不一致.
async def send_private_forward_msg(
self, user_id: Union[int, str], messages: list[str]
):
async def send_group_forward_msg(
self, group_id: Union[int, str], messages: list[str]
):
user_id
: 发送目标 QQ 号.group_id
: 发送目标群号.messages
: 消息 id 构成的列表.- 返回: 一个
dict
表示请求响应结果.
示例调用: bot.api.send_private_forward_msg(123456789, ["123456789", "987654321"])
.
示例返回(是一个 Python 的 dict
):
{
"status": "ok",
"retcode": 0,
"data": {
},
"message": "我没试过不知道是啥",
"wording": "我没试过不知道是啥",
"echo": "我没试过不知道是啥"
}
其它接口
和 NapCat 的同名接口完全一致.
例1. 设置账号信息
async def set_qq_profile(self, nickname: str, personal_note: str, sex: str):
nickname
: 昵称.personal_note
: 个性签名.sex
: 性别.- 返回: 一个
dict
表示请求响应结果.
示例调用: bot.api.set_qq_profile("彭彭", "咱好想和木子姐姐贴贴啊喵qwq", "猫猫")
.
示例返回(是一个 Python 的 dict
):
{
"status": "ok",
"retcode": 0,
"data": {
"result": 0,
"errMsg": ""
},
"message": "我没试过不知道是啥",
"wording": "我没试过不知道是啥",
"echo": "我没试过不知道是啥"
}
例2. 处理好友请求
async def set_friend_add_request(self, flag: str, approve: bool, remark: str):
flag
: 请求 id(request 事件中的user_id
就是此 id).approve
: 是否同意.remark
: 好友备注.- 返回: 一个
dict
表示请求响应结果.
示例调用: bot.api.set_friend_add_request("123456789", True, "彭彭")
.
示例返回(是一个 Python 的 dict
):
{
"status": "ok",
"retcode": 0,
"data": null,
"message": "我没试过不知道是啥",
"wording": "我没试过不知道是啥",
"echo": "我没试过不知道是啥"
}
函数原型参考
以下给出 ncatbot.core.api.BotAPI
的全部成员函数原型.
用户接口
async def set_qq_profile(self, nickname: str, personal_note: str, sex: str):
"""
:param nickname: 昵称
:param personal_note: 个性签名
:param sex: 性别
:return: 设置账号信息
"""
async def get_user_card(self, user_id: int, phone_number: str):
"""
:param user_id: QQ号
:param phone_number: 手机号
:return: 获取用户名片
"""
async def get_group_card(self, group_id: int, phone_number: str):
"""
:param group_id: 群号
:param phone_number: 手机号
:return: 获取群名片
"""
async def get_share_group_card(self, group_id: str):
"""
:param group_id: 群号
:return: 获取群共享名片
"""
async def set_online_status(self, status: str):
"""
:param status: 在线状态
:return: 设置在线状态
"""
async def get_friends_with_category(self):
"""
:return: 获取好友列表
"""
async def set_qq_avatar(self, avatar: str):
"""
:param avatar: 头像路径,支持本地路径和网络路径
:return: 设置头像
"""
async def send_like(self, user_id: str, times: int):
"""
:param user_id: QQ号
:param times: 次数
:return: 发送赞
"""
async def create_collection(self, rawdata: str, brief: str):
"""
:param rawdata: 内容
:param brief: 标题
:return: 创建收藏
"""
async def set_friend_add_request(self, flag: str, approve: bool, remark: str):
"""
:param flag: 请求ID
:param approve: 是否同意
:param remark: 备注
:return: 设置好友请求
"""
async def set_self_long_nick(self, longnick: str):
"""
:param longnick: 个性签名内容
:return: 设置个性签名
"""
async def get_stranger_info(self, user_id: Union[int, str]):
"""
:param user_id: QQ号
:return: 获取陌生人信息
"""
async def get_friend_list(self, cache: bool):
"""
:param cache: 是否使用缓存
:return: 获取好友列表
"""
async def get_profile_like(self):
"""
:return: 获取个人资料卡点赞数
"""
async def fetch_custom_face(self, count: int):
"""
:param count: 数量
:return: 获取收藏表情
"""
async def upload_private_file(self, user_id: Union[int, str], file: str, name: str):
"""
:param user_id: QQ号
:param file: 文件路径
:param name: 文件名
:return: 上传私聊文件
"""
async def delete_friend(
self,
user_id: Union[int, str],
friend_id: Union[int, str],
temp_block: bool,
temp_both_del: bool,
):
"""
:param user_id: QQ号
:param friend_id: 好友ID
:param temp_block: 拉黑
:param temp_both_del: 双向删除
:return: 删除好友
"""
async def nc_get_user_status(self, user_id: Union[int, str]):
"""
:param user_id: QQ号
:return: 获取用户状态
"""
async def get_mini_app_ark(self, app_json: dict):
"""
:param app_json: 小程序JSON
:return: 获取小程序ARK
"""
消息接口
# TODO: 消息接口
async def mark_msg_as_read(
self, group_id: Union[int, str] = None, user_id: Union[int, str] = None
):
"""
:param group_id: 群号,二选一
:param user_id: QQ号,二选一
:return: 设置消息已读
"""
async def mark_group_msg_as_read(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 设置群聊已读
"""
async def mark_private_msg_as_read(self, user_id: Union[int, str]):
"""
:param user_id: QQ号
:return: 设置私聊已读
"""
async def mark_all_as_read(self):
"""
:return: 设置所有消息已读
"""
async def delete_msg(self, message_id: Union[int, str]):
"""
:param message_id: 消息ID
:return: 删除消息
"""
async def get_msg(self, message_id: Union[int, str]):
"""
:param message_id: 消息ID
:return: 获取消息
"""
async def get_image(self, image_id: str):
"""
:param image_id: 图片ID
:return: 获取图片消息详情
"""
async def get_record(self, record_id: str, output_type: str = "mp3"):
"""
:param record_id: 语音ID
:param output_type: 输出类型,枚举值:mp3 amr wma m4a spx ogg wav flac,默认为mp3
:return: 获取语音消息详情
"""
async def get_file(self, file_id: str):
"""
:param file_id: 文件ID
:return: 获取文件消息详情
"""
async def get_group_msg_history(
self,
group_id: Union[int, str],
message_seq: Union[int, str],
count: int,
reverse_order: bool,
):
"""
:param group_id: 群号
:param message_seq: 消息序号
:param count: 数量
:param reverse_order: 是否倒序
:return: 获取群消息历史记录
"""
async def set_msg_emoji_like(
self, message_id: Union[int, str], emoji_id: int, emoji_set: bool
):
"""
:param message_id: 消息ID
:param emoji_id: 表情ID
:param emoji_set: 设置
:return: 设置消息表情点赞
"""
async def get_friend_msg_history(
self,
user_id: Union[int, str],
message_seq: Union[int, str],
count: int,
reverse_order: bool,
):
"""
:param user_id: QQ号
:param message_seq: 消息序号
:param count: 数量
:param reverse_order: 是否倒序
:return: 获取好友消息历史记录
"""
async def get_recent_contact(self, count: int):
"""
获取的最新消息是每个会话最新的消息
:param count: 会话数量
:return: 最近消息列表
"""
async def fetch_emoji_like(
self,
message_id: Union[int, str],
emoji_id: str,
emoji_type: str,
group_id: Union[int, str] = None,
user_id: Union[int, str] = None,
count: int = None,
):
"""
:param message_id: 消息ID
:param emoji_id: 表情ID
:param emoji_type: 表情类型
:param group_id: 群号,二选一
:param user_id: QQ号,二选一
:param count: 数量,可选
:return: 获取贴表情详情
"""
async def get_forward_msg(self, message_id: str):
"""
:param message_id: 消息ID
:return: 获取合并转发消息
"""
async def send_poke(
self, user_id: Union[int, str], group_id: Union[int, str] = None
):
"""
:param user_id: QQ号
:param group_id: 群号,可选,不填则为私聊
:return: 发送戳一戳
"""
async def forward_friend_single_msg(
self, message_id: str, user_id: Union[int, str]
):
"""
:param message_id: 消息ID
:param user_id: 发送对象QQ号
:return: 转发好友消息
"""
async def send_private_forward_msg(
self, user_id: Union[int, str], messages: list[str]
):
"""
:param user_id: 发送对象QQ号
:param messages: 消息列表
:return: 合并转发私聊消息
"""
群组接口
async def set_group_kick(
self,
group_id: Union[int, str],
user_id: Union[int, str],
reject_add_request: bool = False,
):
"""
:param group_id: 群号
:param user_id: QQ号
:param reject_add_request: 是否群拉黑
:return: 踢出群成员
"""
async def set_group_ban(
self, group_id: Union[int, str], user_id: Union[int, str], duration: int
):
"""
:param group_id: 群号
:param user_id: QQ号
:param duration: 禁言时长,单位秒,0为取消禁言
:return: 群组禁言
"""
async def get_group_system_msg(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群系统消息
"""
async def get_essence_msg_list(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取精华消息列表
"""
async def set_group_whole_ban(self, group_id: Union[int, str], enable: bool):
"""
:param group_id: 群号
:param enable: 是否禁言
:return: 群组全员禁言
"""
async def set_group_portrait(self, group_id: Union[int, str], file: str):
"""
:param group_id: 群号
:param file: 文件路径,支持网络路径和本地路径
:return: 设置群头像
"""
async def set_group_admin(
self, group_id: Union[int, str], user_id: Union[int, str], enable: bool
):
"""
:param group_id: 群号
:param user_id: QQ号
:param enable: 是否设置为管理
:return: 设置群管理员
"""
async def set_essence_msg(self, message_id: Union[int, str]):
"""
:param message_id: 消息ID
:return: 设置精华消息
"""
async def set_group_card(
self, group_id: Union[int, str], user_id: Union[int, str], card: str
):
"""
:param group_id: 群号
:param user_id: QQ号
:param card: 群名片,为空则为取消群名片
:return: 设置群名片
"""
async def delete_essence_msg(self, message_id: Union[int, str]):
"""
:param message_id: 消息ID
:return: 删除精华消息
"""
async def set_group_name(self, group_id: Union[int, str], group_name: str):
"""
:param group_id: 群号
:param group_name: 群名
:return: 设置群名
"""
async def set_group_leave(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 退出群组
"""
async def send_group_notice(
self, group_id: Union[int, str], content: str, image: str = None
):
"""
:param group_id: 群号
:param content: 内容
:param image: 图片路径,可选
:return: 发送群公告
"""
async def get_group_notice(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群公告
"""
async def set_group_special_title(
self, group_id: Union[int, str], user_id: Union[int, str], special_title: str
):
"""
:param group_id: 群号
:param user_id: QQ号
:param special_title: 群头衔
:return: 设置群头衔
"""
async def upload_group_file(
self, group_id: Union[int, str], file: str, name: str, folder_id: str
):
"""
:param group_id: 群号
:param file: 文件路径
:param name: 文件名
:param folder_id: 文件夹ID
:return: 上传群文件
"""
async def set_group_add_request(self, flag: str, approve: bool, reason: str = None):
"""
:param flag: 请求flag
:param approve: 是否同意
:param reason: 拒绝理由
:return: 处理加群请求
"""
async def get_group_info(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群信息
"""
async def get_group_info_ex(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群信息(拓展)
"""
async def create_group_file_folder(
self, group_id: Union[int, str], folder_name: str
):
"""
:param group_id: 群号
:param folder_name: 文件夹名
:return: 创建群文件文件夹
"""
async def delete_group_file(self, group_id: Union[int, str], file_id: str):
"""
:param group_id: 群号
:param file_id: 文件ID
:return: 删除群文件
"""
async def delete_group_folder(self, group_id: Union[int, str], folder_id: str):
"""
:param group_id: 群号
:param folder_id: 文件夹ID
:return: 删除群文件文件夹
"""
async def get_group_file_system_info(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群文件系统信息
"""
async def get_group_root_files(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群根目录文件列表
"""
async def get_group_files_by_folder(
self, group_id: Union[int, str], folder_id: str, file_count: int
):
"""
:param group_id: 群号
:param folder_id: 文件夹ID
:param file_count: 文件数量
:return: 获取群文件列表
"""
async def get_group_file_url(self, group_id: Union[int, str], file_id: str):
"""
:param group_id: 群号
:param file_id: 文件ID
:return: 获取群文件URL
"""
async def get_group_list(self, no_cache: bool = False):
"""
:param no_cache: 不缓存,默认为false
:return: 获取群列表
"""
async def get_group_member_info(
self, group_id: Union[int, str], user_id: Union[int, str], no_cache: bool
):
"""
:param group_id: 群号
:param user_id: QQ号
:param no_cache: 不缓存
:return: 获取群成员信息
"""
async def get_group_member_list(
self, group_id: Union[int, str], no_cache: bool = False
):
"""
:param group_id: 群号
:param no_cache: 不缓存
:return: 获取群成员列表
"""
async def get_group_honor_info(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群荣誉信息
"""
async def get_group_at_all_remain(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群 @全体成员 剩余次数
"""
async def get_group_ignored_notifies(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群过滤系统消息
"""
async def set_group_sign(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 群打卡
"""
async def send_group_sign(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 群打卡
"""
async def get_ai_characters(
self, group_id: Union[int, str], chat_type: Union[int, str]
):
"""
:param group_id: 群号
:param chat_type: 聊天类型
:return: 获取AI语音人物
"""
async def send_group_ai_record(
self, group_id: Union[int, str], character: str, text: str
):
"""
:param group_id: 群号
:param character: AI语音人物,即character_id
:param text: 文本
:return: 发送群AI语音
"""
async def get_ai_record(self, group_id: Union[int, str], character: str, text: str):
"""
:param group_id: 群号
:param character: AI语音人物,即character_id
:param text: 文本
:return: 获取AI语音
"""
async def forward_group_single_msg(
self, message_id: str, group_id: Union[int, str]
):
"""
:param message_id: 消息ID
:param group_id: 群号
:return: 转发群聊消息
"""
async def send_group_forward_msg(
self, group_id: Union[int, str], messages: list[str]
):
"""
:param group_id: 群号
:param messages: 消息列表
:return: 合并转发的群聊消息
"""
系统接口
async def get_client_key(self):
"""
:return: 获取client_key
"""
async def get_robot_uin_range(self):
"""
:return: 获取机器人QQ号范围
"""
async def ocr_image(self, image: str):
"""
:param image: 图片路径,支持本地路径和网络路径
:return: OCR 图片识别
"""
async def ocr_image_new(self, image: str):
"""
:param image: 图片路径,支持本地路径和网络路径
:return: OCR 图片识别
"""
async def translate_en2zh(self, words: list):
"""
:param words: 待翻译的单词列表
:return: 英文翻译为中文
"""
async def get_login_info(self):
"""
:return: 获取登录号信息
"""
async def set_input_status(self, event_type: int, user_id: Union[int, str]):
"""
:param event_type: 状态类型
:param user_id: QQ号
:return: 设置输入状态
"""
async def download_file(
self,
thread_count: int,
headers: Union[dict, str],
base64: str = None,
url: str = None,
name: str = None,
):
"""
:param thread_count: 下载线程数
:param headers: 请求头
:param base64: base64编码的图片,二选一
:param url: 图片url,二选一
:param name: 文件名
:return: 下载文件
"""
async def get_cookies(self, domain: str):
"""
:param domain: 域名
:return: 获取cookies
"""
async def handle_quick_operation(self, context: dict, operation: dict):
"""
:param context: 事件数据对象
:param operation: 快速操作对象
:return: 对事件执行快速操作
"""
async def get_csrf_token(self):
"""
:return: 获取 CSRF Token
"""
async def del_group_notice(self, group_id: Union[int, str], notice_id: str):
"""
:param group_id: 群号
:param notice_id: 通知ID
:return: 删除群公告
"""
async def get_credentials(self, domain: str):
"""
:param domain: 域名
:return: 获取 QQ 相关接口凭证
"""
async def get_model_show(self, model: str):
"""
:param model: 模型名
:return: 获取模型显示
"""
async def can_send_image(self):
"""
:return: 检查是否可以发送图片
"""
async def nc_get_packet_status(self):
"""
:return: 获取packet状态
"""
async def can_send_record(self):
"""
:return: 检查是否可以发送语音
"""
async def get_status(self):
"""
:return: 获取状态
"""
async def nc_get_rkey(self):
"""
:return: 获取rkey
"""
async def get_version_info(self):
"""
:return: 获取版本信息
"""
async def get_group_shut_list(self, group_id: Union[int, str]):
"""
:param group_id: 群号
:return: 获取群禁言列表
"""
async def post_group_msg(
self,
group_id: Union[int, str],
text: str = None,
face: int = None,
json: str = None,
markdown: str = None,
at: Union[int, str] = None,
reply: Union[int, str] = None,
music: Union[list, dict] = None,
dice: bool = False,
rps: bool = False,
image: str = None,
rtf: MessageChain = None,
):
"""
:param group_id: 群号
:param text: 文本
:param face: 表情
:param json: JSON
:param markdown: Markdown
:param at: at
:param reply: 回复
:param music: 音乐
:param dice: 骰子
:param rps: 猜拳
:param image: 图片
:param rtf: 富文本(消息链)
:return: 发送群消息
"""
async def post_private_msg(
self,
user_id: Union[int, str],
text: str = None,
face: int = None,
json: str = None,
markdown: str = None,
reply: Union[int, str] = None,
music: Union[list, dict] = None,
dice: bool = False,
rps: bool = False,
image: str = None,
rtf: MessageChain = None,
):
"""
:param user_id: QQ号
:param text: 文本
:param face: 表情
:param json: JSON
:param markdown: Markdown
:param reply: 回复
:param music: 音乐
:param dice: 骰子
:param rps: 猜拳
:param image: 图片
:param rtf: 富文本(消息链)
:return: 发送私聊消息
"""
async def post_group_file(
self,
group_id: Union[int, str],
image: str = None,
record: str = None,
video: str = None,
file: str = None,
markdown: str = None,
):
"""
:param group_id: 群号
:param image: 图片
:param record: 语音
:param video: 视频
:param file: 文件
:param markdown: Markdown
:return: 发送群文件
"""
async def post_private_file(
self,
user_id: Union[int, str],
image: str = None,
record: str = None,
video: str = None,
file: str = None,
markdown: str = None,
):
"""
:param user_id: QQ号
:param image: 图片
:param record: 语音
:param video: 视频
:param file: 文件
:param markdown: Markdown
:return: 发送私聊文件
"""
版权所有
版权归属:huan-yp