itchat是一个开源的微信个人号接口,是用python对微信API的封装,该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。
支持发送消息、图片、视频、地图、名片、文件等
支持热登陆,不用每次登陆都要扫描二维码
支持上传中文文件
打开终端,使用pip工具安装itchat:
pip install itchat
安装成功之后,在python的安装路径:…\Python27\Lib\site-packages\会增加一个itchat的文件,进入之后,可以查看所有的功能接口,如下图所示
itchat中所封装的方法可以在core.py中进行查看,打开core.py文件, Core类中介绍了40个方法,对其作用进行解读如下:
Function-name | Description | Usage |
---|---|---|
login | 和微信网页版登录一样: 一个登录二维码被打开 需要扫描数据、需要手机确认 最后登录并显示nickName 参数:enableCmdQR、picDir、qrCallback、loginCallback、exitCallback import itchat | itchat.login() |
get_Qruuid | 得到一个的uuid: 登录前、下载二维码、检查登录数据,都需要uuid | |
get_QR | 下载和展示二维码: 参数:uuid、enableCmdQR、picDir、qrCallback | |
check_login | 检查登录数据: 参数:uuid 返回值:string 200(success)201(等待确认)408(uuid超时)0(不明错误) | |
web_init | 得到初始化的必要信息: 参数:show_mobile_login 显示网页微信登录标识 | |
start_receiving | 打开一个主循环线程和接收信息: 参数:get_msg 获取信息 | |
logout | 登出 |
Function-name | Description | Usage |
---|---|---|
update_chatroom | 更新聊天室 | 参数:userName、detailedMember |
update_friend | 更新聊天室 | 参数:userName |
get_contact | fetch part of contact | 参数:update;返回值:chatroomList will be returned |
get_friends | 获取朋友列表:fetch friends list | 参数:update;返回值:friends 信息字典 |
get_chatrooms | 获取聊天室列表:fetch chatrooms list | 参数:update、contactOnly;返回值:chatrooms(dict) |
get_mps | 获取大平台列表:fetch massive platforms list | 参数:update;返回值:platforms(dict) |
set_alias | 设置朋友的别名: | 参数:userName、alias |
set_pinned | 设置固定的朋友或者聊天室: | 参数:userName、isPinned |
add_friend | 添加朋友或者接受添加 | 参数:userName、status(2/3):2为添加,3为接受 |
get_head_img | place for docs参数:userName、chatroomUserName、picDir | get chatroom header: only set chatroomUserName-get friend header: only set userName-get chatroom member header: set both |
create_chatroom | 创建一个聊天室: | 参数:memberList(dict)、topic(str) |
set_chatroom_name | 设置聊天室名称: | 参数:chatroomUserName、name |
delete_member_from_chatroom | 删除成员: 不能删除自己 严格限制操作频率; | 参数:chatroomUserName(dict), memberList(dict) |
add_member_into_chatroom | 添加成员: 不能添加自己或者已存在的成员 人员超过40,需要邀请 严格限制操作频率 | 参数:chatroomUserName,memberList, useInvitation |
Function-name | Description | Usage |
---|---|---|
send_raw_msg | 发送多条消息: many messages are sent in a common way | @itchat.msg_register(itchat.content.CARD) def reply(msg): itchat.send_raw_msg(msg[‘MsgType’], msg[‘Content’], msg[‘FromUserName’]) |
send_msg | 发送纯文本消息 | 参数:msg(unicode)、toUserName |
upload_file | 上传文件得到mediaID: upload file to server and get mediaId | 参数:fileDir、isPicture、isVideo |
send_file | 发送附件:send attachment | 参数:fileDir、mediaId、toUserName |
send_image | 发送图片:send image | 参数:fileDir、mediaId、toUserName |
send_video | 发送视频:send video | 参数:fileDir、mediaId、toUserName |
send | 所有发送方法的预方法: | 参数: msg: 不同的字符代表不同的类型:[’@fil@’, ‘@img@’, ‘@msg@’, ‘@vid@’]代表[文件、图片、纯文本、视频],如果没有匹配的,代表纯文本; toUserName: ‘UserName’ key of friend dict; mediaId: if set, uploading will not be repeated |
revoke | 撤销消息 | 参数:msgId、toUserName、localId; msgId为服务器的消息Id,localId为本地的消息Id |
Function-name | Description | Usage |
---|---|---|
dump_login_status | 将登陆状态转储为特定文件 | 参数:fileDir(dir for dumping login status)、loginCallback、exitCallback |
load_login_status |
Function-name | Description | Usage |
---|---|---|
auto_login | 同login,只是参数不同 | 参数:hotReload、statusStorageDir、enableCmdQR、picDir、qrCallback、loginCallback、exitCallback |
configured_reply | null | |
msg_register | 装饰器的构造函数,基于给定的信息,返回一个特定的装饰器 | |
run | 启动自动回复 | 参数:debug,如果进行设置,debug信息会在界面显示。 |
search_friends | ||
search_chatrooms | ||
search_mps |
import itchat
itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')
import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
return msg['Text']
itchat.auto_login()
itchat.run()