1. itchat概述
itchat是一个开源的微信个人号接口,是用python对微信API的封装,该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。
-
支持发送消息、图片、视频、地图、名片、文件等
-
支持热登陆,不用每次登陆都要扫描二维码
-
支持上传中文文件
1.1. 安装
打开终端,使用pip工具安装itchat:
pip install itchat安装成功之后,在python的安装路径:…\Python27\Lib\site-packages\会增加一个itchat的文件,进入之后,可以查看所有的功能接口,如下图所示
1.2 itchat的API
itchat中所封装的方法可以在core.py中进行查看,打开core.py文件, Core类中介绍了40个方法,对其作用进行解读如下:
1) 在components/login.py中进行定义的方法:
| 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 | 登出 |
2) 在components/contact.py中进行定义的方法:
| 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 |
3) 在components/messages.py中进行定义的方法:
| 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 |
4) 在components/hotreload.py中进行定义的方法:
| Function-name | Description | Usage |
|---|---|---|
| dump_login_status | 将登陆状态转储为特定文件 | 参数:fileDir(dir for dumping login status)、loginCallback、exitCallback |
| load_login_status |
5) 在components/register.py中进行定义的方法:
| 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 |
2. 简单入门实例
2.1. 给文件传输助手发一条信息
import itchat
itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')
2.2. 回复发给自己的文本消失
import itchat
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
return msg['Text']
itchat.auto_login()
itchat.run()
本文介绍了itchat,一个开源的Python微信个人号接口。内容包括itchat的功能特性,如发送消息、图片、视频等,以及安装步骤。同时,通过简单的入门实例展示了如何给文件传输助手发送信息和回复自己收到的文本。

7004

被折叠的 条评论
为什么被折叠?



