Home

Awesome

<h1 align="center">NtChat-Client</h1> <p align="center"> <a href="https://github.com/JustUndertaker/ntchat-client/releases"><img src="https://img.shields.io/badge/release-0.3.2-blue.svg?" alt="release"></a> <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-brightgreen.svg?" alt="License"></a> </p>

新的开始

这边已经不再维护,但可继续使用。

可以关注新坑:ComWeChatBotClient ,使用onebot12协议,更方便做一些操作。

介绍

上游依赖

支持的微信版本

配置项

.env文件是项目配置文件

# 是否注入已开启微信进程
smart = True

# http api 地址
host = 127.0.0.1

# http api 端口
port = 8000

# http post上报地址,不填不会进行上报
http_post_url = ""

# ws主动连接地址,不填不会主动连接ws
ws_address = ""

# access_token验证密钥
access_token = ""

# 日志显示等级
log_level = "DEBUG"

# 日志保存天数
log_days = 10

# 事件过滤列表,列表填tpye的数字
msg_filter = []

# 是否上报自身消息
report_self = False

# 文件缓存地址
cache_path = "./file_cache"

# 文件缓存天数,为0则不清理缓存
cache_days = 3

# 聊天图片解密地址
image_path = "./image_decode"

# 聊天解密图片保存天数,为0则不清理缓存
image_days = 0

# 下载pc图片超时时间(s),超时的图片不会解密
image_timeout = 30

# 超时的图片消息是否继续发送
timeout_image_send = False

与Nonebot2通信

目前支持反向websocket通信和http post通信

使用反向websocket

需要修改配置项:

# ws主动连接地址,不填不会主动连接ws
ws_address = "ws://127.0.0.1:8080/ntchat/ws"

使用http post

需要修改配置项:

# http post上报地址,不填不会进行上报
http_post_url = "http://127.0.0.1:8080/ntchat/http"
<details> <summary><h2>更新日志</h2></summary> <h3> 0.3.2 </h3> <ul> <li>修复图片缓存清除bug</li> <li>升级上游依赖版本</li> </ul> <h3> 0.3.1 </h3> <ul> <li>修复部分日志bug</li> <li>增加图片解密及输出</li> <li>增加部分配置,设置缓存文件删除时间</li> </ul> <h3> 0.3.0 </h3> <ul> <li>重构整个框架,使用uvicorn管理主线程</li> <li>增加http api</li> <li>增加http post上报</li> <li>ws改为异步websockets管理</li> <li>定时器改为异步调度</li> </ul> <h3> 0.2.0 </h3> <ul> <li>增加二维码扫描</li> <li>增加日志保存</li> <li>增加文件缓存模块,拓展ntchat自身api中的file支持类型(支持filepath,url,base64)</li> <li>增加定时模块用于处理文件缓存</li> <li>api调用file及file_path字段需要修改,目前支持:</li> <ul> <li>绝对路径,采用file_uri:file:///path</li> <li>网络路径,支持http和https,格式:http://或https://</li> <li>base64,格式为:base64://values</li> </ul> </ul> </details>

Http api

在连接到wechat后,会自动开启http api,访问http api需要注意:

响应数据模型

字段类型说明
codeint响应code,200为成功
msgstr失败时返回错误内容
datadict | list | str响应数据内容

下面是api列表:

获取登录信息

api地址:/get_login_info

参数: 无

响应数据类型:dict

获取自己个人信息

api地址:/get_self_info

参数:无

响应数据类型:dict

获取联系人列表

api地址:/get_contacts

参数:无

响应数据类型:list[dict]

获取关注公众号列表

api地址:/get_publics

参数:无

响应数据类型:list[dict]

获取联系人详细信息

api地址:/get_contact_detail

参数:

字段名数据类型可选默认值说明
wxidstr必填None要获取联系人的wxid

响应数据类型:dict

根据wxid、微信号、昵称和备注模糊搜索联系人

api地址:/search_contacts

参数:

字段名数据类型可选默认值说明
wxidstr可选None微信id
accountstr可选None微信号
nicknamestr可选None微信昵称
remarkstr可选None备注
fuzzy_searchbool可选True是否模糊搜索

响应数据类型:list

获取群列表

api地址:/get_rooms

参数:无

响应数据类型:list[dict]

获取指定群详细信息

api地址:/get_room_detail

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None群房间id

响应数据类型:dict

获取群名

api地址:/get_room_name

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号

响应数据类型:str

获取群成员列表

api地址:/get_room_members

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None群房间id

响应数据类型:list[dict]

发送文本消息

api地址:/send_text

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,可以是个人id,也可以是群房间号
contentstr必填None发送文本内容

响应数据类型:None

发送群@消息

api地址:/send_room_at_msg

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None发送人id,也可以是房间号
contentstr必填None发送文本内容,需填写占位符:{$@}
at_listlist[str]必填Noneat列表,个数需要与占位符数量一致

响应数据类型:None

注意

发送名片

api地址:/send_card

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id
card_wxidstr必填None卡片人id

响应数据类型:None

发送链接卡片

api地址:/send_link_card

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,支持个人id和房间id
titlestr必填None卡片标题
descstr必填None卡片说明文字
urlstr必填None链接地址
image_urlstr必填None卡片图片的url

响应数据类型:None

发送图片

api地址:/send_image

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,支持个人id和房间id
file_pathstr必填None图片地址

响应数据类型:None

注意

图片地址目前支持:

发送文件

api地址:/send_file

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,支持个人id和房间id
file_pathstr必填None文件地址

响应数据类型:None

注意

文件地址目前支持:

发送视频

api地址:/send_video

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,支持个人id和房间id
file_pathstr必填None视频地址

响应数据类型:None

注意

视频地址目前支持:

发送gif

api地址:/send_gif

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,支持个人id和房间id
filestr必填Nonegif地址

响应数据类型:None

注意

gif地址目前支持:

发送xml消息

api地址:/send_xml

参数:

字段名数据类型可选默认值说明
to_wxidstr必填None接收人id,支持个人id和房间id
xmlstr必填Nonexml内容
app_typeint选填5小程序分类type

响应数据类型:None

发送拍一拍

api地址:/send_pat

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号
patted_wxidstr必填None拍一拍对象id

响应数据类型:None

同意加好友请求

api地址:/accept_friend_request

参数:

字段名数据类型可选默认值说明
encryptusernamestr必填None好友用户名
ticketstr必填None事件ticket
sceneint必填None好友权限

响应数据类型:None

创建群

api地址:/create_room

参数:

字段名数据类型可选默认值说明
member_listlist[str]必填None初始成员wxid列表

响应数据类型:None

邀请好友入群

api地址:/invite_room_member

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号
member_listlist[str]必填None邀请好友wxid列表

响应数据类型:None

删除群成员

api地址:/del_room_member

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号
member_listlist[str]必填None删除成员wxid列表

响应数据类型:None

注意:需要有相应权限

修改群名

api地址:/modify_room_name

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号
namestr必填None房间名称

响应数据类型:None

注意:需要有相应权限

修改群公告

api地址:/modify_room_notice

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号
noticestr必填None公告内容

响应数据类型:None

注意:需要有相应权限

添加群成员为好友

api地址:/add_room_friend

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号
wxidstr必填None请求对方wxid
verifystr选填None备注

响应数据类型:None

退出群

api地址:/quit_room

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号

响应数据类型:None

修改好友备注

api地址:/modify_friend_remark

参数:

字段名数据类型可选默认值说明
wxidstr必填None好友wxid
remarkstr必填None备注

响应数据类型:None

获取群名

api地址:/get_room_name

参数:

字段名数据类型可选默认值说明
room_wxidstr必填None房间号

响应数据类型:str