一个有趣的开源项目:itchat使用介绍
推荐一下Python的微信客户端,可以做很有趣的微信机器人。
登录
- itchat.login(enableCmdQR=False)
- itchat.auto_login(enableCmdQR=-1) 背景为白色
- itchat.auto_login(hotReload=True, loginCallback, exitCallback)退出程序后暂存登陆状态
获取本号的微信消息
回复发给自己的文本消息
1 |
|
发送给文件传输助手和本号都会接收。
可以接收了类型包括:
‘ATTACHMENT’, ‘CARD’, ‘FRIENDS’, ‘INCOME_MSG’, ‘MAP’, ‘NOTE’, ‘PICTURE’, ‘RECORDING’, ‘SHARING’, ‘SYSTEM’, ‘TEXT’, ‘VIDEO’, ‘VOICE’
- 图片对应 itchat.content.PICTURE
- 语音对应 itchat.content.RECORDING
- 名片对应 itchat.content.CARD
发送消息
itchat函数:
- itchat.send(msg, toUserName, mediaId)
- send_file
- send_image
- send_msg
- send_raw_msg
- send_video
返回结果示例:1
<ItchatReturnValue: {'BaseResponse': {'ErrMsg': '返回值不带BaseResponse', 'Ret': -1000, 'RawMsg': 'no BaseResponse in raw response'}}>
toUserName是微信号,如果传送给文件传输助手:
1 | itchat.send('测试消息', 'filehelper') |
返回信息:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50<ItchatReturnValue: {'BaseResponse': {'RawMsg': '请求成功', 'ErrMsg': '请求成功', 'Ret': 0}, 'LocalID': '14958673103729', 'MsgID': '6087828379088483558'}>```
## 注册各类消息
```Python
# 自动回复
import itchat, time
from itchat.content import *
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])
def text_reply(msg):
itchat.send('%s: %s' % (msg['Type'], msg['Text']), msg['FromUserName'])
# 下载文件
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
# 发送的文件的文件名(图片给出的默认文件名)都存储在msg的FileName键
# 附件下载方法存储在msg的Text键中
msg['Text'](msg['FileName'])
return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName'])
# 仅想要读取二进制串进行进一步处理可以不传入参数
@itchat.msg_register(['Picture', 'Recording', 'Attachment', 'Video'])
def download_files(msg):
with open(msg['FileName'], 'wb') as f:
f.write(msg['Text']())
# 自动添加好友
@itchat.msg_register(FRIENDS)
def add_friend(msg):
itchat.add_friend(**msg['Text']) ## 该操作会自动将新好友的消息录入,不需要重载通讯录
itchat.send_msg('Hello new friend', msg['RecommendInfo']['UserName'])
@itchat.msg_register(TEXT, isGroupChat=True)
def text_reply(msg):
if msg['isAt']:
itchat.send('@%s received: %s' % (msg['ActualNickName', msg['Content']),
msg['FromUserName'])
itchat.auto_login(True)
itchat.run()
Search Friends
四种搜索方式
- 仅获取自己的用户信息
- 获取特定UserName的用户信息
- 获取备注、微信号、昵称中的任何一项等于name键值的用户
- 获取备注、微信号、昵称分别等于相应键值的用户
1 |
|
搜索到的结果以列表返回,列表中每个item可以看作是用户对象,用户对象包括如下内容:
- send
- send_file
- send_image
- send_msg
- send_raw_msg
- send_video
用户多开
1 | instance = itchat.new_instance() |
以上的这些功能,可以做一个很有意思的微信自动化机器人。
转载请包括本文地址:https://allenwind.github.io/blog/5694
更多文章请参考:https://allenwind.github.io/blog/archives/