4.5 KiB
4.5 KiB
封装接口清单(WechatHookClient)
本文档整理当前项目内已封装的对外接口,插件开发请优先使用 WechatHookClient,避免直接调用 HTTP API。
说明:
- 插件回调里通常会拿到
bot参数,它就是WechatHookClient实例。 - 统一发送:
send_message/send_media。 - 统一下载:
download_wechat_media(带锁与缓存,TTL=60分钟)。 - 群成员信息建议优先使用
utils.member_info_service(MemberSync 数据库)。
基础信息
bot.wxid获取当前登录 wxidbot.nickname获取当前登录昵称await bot.update_profile(wxid, nickname)手动更新缓存信息
初始化与登录
await bot.wechat_init()初始化好友/群列表缓存await bot.get_login_info()获取当前登录信息(并更新bot.wxid/bot.nickname)
消息发送
await bot.send_message(to_wxid, msg_type, content)统一发送入口(text/image/video/file/xml)await bot.send_text(to_wxid, content)发送文本await bot.send_image(to_wxid, image_path)发送图片await bot.send_video(to_wxid, video_path)发送视频await bot.send_file(to_wxid, file_path)发送文件await bot.send_media(to_wxid, file_path, media_type="")统一媒体发送(支持按扩展名自动判断)await bot.send_at_message(chatroom_id, content, at_list)群聊 @ 消息await bot.send_xml(to_wxid, xml)发送 XML 消息await bot.send_card(to_wxid, card_wxid, card_nickname="")发送名片await bot.send_link(to_wxid, title, desc, url, thumb_url="")发送链接await bot.send_link_card(to_wxid, title, desc, url, image_url="")发送链接卡片await bot.revoke_message(msg_id)撤回消息
群聊管理
await bot.get_chatroom_list(force_refresh=False)获取群聊列表(好友列表 + 本地数据库兜底)await bot.get_chatroom_members(chatroom_id)获取群成员列表(优先全量名单,不足时数据库兜底)- 返回字段:
wxid/nickname/display_name/avatar
- 返回字段:
await bot.get_chatroom_info(chatroom_id)获取群信息await bot.create_chatroom(member_list)创建群聊await bot.invite_to_chatroom(chatroom_id, wxid_list)邀请进群await bot.remove_chatroom_member(chatroom_id, wxid_list)踢出群成员await bot.quit_chatroom(chatroom_id)退出群聊await bot.set_chatroom_announcement(chatroom_id, announcement)修改群公告await bot.set_chatroom_name(chatroom_id, name)修改群名称(新协议可能不可用)await bot.set_my_chatroom_nickname(chatroom_id, nickname)修改我的群昵称(新协议可能不可用)
群成员信息
await bot.get_group_member_contact(room_id, member_wxid)获取群成员详细信息(含头像)await bot.get_user_info_in_chatroom(chatroom_id, user_wxid, max_retries=1)从缓存/群成员列表获取信息bot.update_chatroom_members_cache(chatroom_id, members)更新群成员缓存bot.get_cached_member_info(chatroom_id, user_wxid)从缓存获取群成员信息
好友管理
await bot.get_friend_list()获取好友列表(失败会自动触发初始化/全量更新)await bot.get_friend_info(wxid)获取好友资料(网络)await bot.add_friend(wxid, verify_msg="", scene=3)添加好友await bot.accept_friend(v3, v4, scene)同意好友请求await bot.delete_friend(wxid)删除好友await bot.set_friend_remark(wxid, remark)修改好友备注
微信消息媒体下载(图片/视频)
-
await bot.download_wechat_media(media_type, save_path, message=None, msg_id=None, total_len=0, to_user="", from_user="", file_id="", aes_key="", prefer_original=True, timeout=60.0)- 统一入口:带缓存与锁,避免重复下载
-
await bot.download_image(message, save_path)从消息 XML 下载图片 -
await bot.download_image_by_id(msg_id, total_len, save_path, to_user="", from_user="")引用消息图片下载 -
await bot.download_image_by_cdn(file_id, aes_key, save_path, prefer_original=True, timeout=60.0)CDN 参数下载图片 -
await bot.download_video(message, save_path)从消息 XML 下载视频 -
await bot.download_video_by_id(msg_id, total_len, save_path)引用消息视频下载
兼容/保留接口(新协议一般不需要)
await bot.cdn_init()CDN 初始化(新协议无需)await bot.cdn_download(...)CDN 下载(新协议不推荐)await bot.cdn_upload(...)CDN 上传(新协议不推荐)await bot.send_cdn_image(to_wxid, file_path)发送图片(兼容接口)