1、安装
1、终端:sudo pip install itchat
2、如果安装了pycharm 的话在偏好设置里面安装即可
2、登录
# 支持热登录 函数里面有及好多参数
1、itchat.auto_login(hotReload=True, loginCallback=lc, exitCallback=ec)
# 这是 源码里面的登录接口
# hotReload=False 热登录
# loginCallback 登录回调
# exitCallback 登出回调
def auto_login(self, hotReload=False, statusStorageDir='itchat.pkl',
enableCmdQR=False, picDir=None, qrCallback=None,
loginCallback=None, exitCallback=None):
pass
这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件itchat.pkl用于存储登录状态
3、登出
itchat.logout() #强制退出登录
4、消息回复
send(msg="Text Message", toUserName=None)
参数:
msg : 文本消息内容
@fil@path_to_file : 发送文件
@img@path_to_img : 发送图片
@vid@path_to_video : 发送视频
toUserName : 发送对象, 如果留空, 将发送给自己.
返回值
True or False
代码展示: 目的是看下他们的格式
mport itchat
itchat.auto_login()
itchat.send("Hello World!")
ithcat.send("@fil@%s" % '/Users/locolName/Desktop/.text')
ithcat.send("@img@%s" % '/Users/locolName/Desktop/test.png')
ithcat.send("@vid@%s" % '/Users/locolName/Desktop/test.mkv')
就以 发送文件:@fil@path_to_file , 解释一下他的格式:
@fill:是规定拼接的,如果发送文件就必须用这个
@path_to_file: 这个就是该文件的绝对路径。
因此:写法为:
ithcat.send("@fil@%s" % '/Users/locolName/Desktop/test.text', toUserName="你想发给谁这里就写谁")
1、send_msg的使用
send_msg(msg='Text Message', toUserName=None)
msg是要发送的文本
toUserName是发送对象, 如果留空, 将发送给自己
返回值为True或者False
示例代码:
itchat.send_msg("hello world.")
2、send_file的使用
send_file(fileDir, toUserName=None)
fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒
返回值为True或者False
示例代码:
itchat.send_file("/Users/locolName/Desktop/test.txt")
3、send_image的使用
send_image(fileDir, toUserName=None)
fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒
返回值为True或者False
示例代码:
itchat.send_video("/Users/locolName/Desktop/test.txt")
5、注册方法
1、不带具体对象注册, 将注册为普通消息的回复方法.
import itchat
from itchat.content import *
#这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
@itchat.msg_register(TEXT)
def simple_reply(msg):
# 打印收到消息的内容,你也可打印msg,看下里面的字段选取自己想要的
print("收到消息:", msg.text)
#这个是向发送者发送收到的消息
itchat.send_msg('收到内容为%s'%msg['Text'], toUserName=msg['FromUserName'])
#返回的给对方的消息,msg["Text"]表示消息的内容
return "reveived: %s" % msg["Text"]
2、带对象参数注册, 对应消息对象将调用该方法
isFriendChat表示好友之间
isGroupChat表示群聊
isMapChat表示公众号
#示例代码:
import itchat
from itchat.content import *
@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
def text_reply(msg):
print(msg.type)
msg.user.send("%s : %s" % (msg.type, msg.text))
消息类型
向注册方法传入的 msg 包含微信返回的字典的所有内容.itchat 增加 Text, Type(也就是参数) 键值, 方便操作.
itcaht.content中包含所有的消息类型参数, 如下表
序号 | 参数 | 类型 | Text 键值 |
---|---|---|---|
1 | TEXT | 文本 | 文本内容(文字消息) |
2 | MAP | 地图 | 位置文本(位置分享) |
3 | CARD | 名片 | 推荐人字典(推荐人的名片) |
4 | SHARING | 分享 | 分享名称(分享的音乐或者文章等) |
5 | PICTURE | 下载方法 | 图片/表情 |
6 | RECORDING | 语音 | 下载方法 |
7 | ATTACHMENT | 附件 | 下载方法 |
8 | VIDEO | 小视频 | 下载方法 |
9 | FRIENDS | 好友邀请 | 添加好友所需参数 |
10 | SYSTEM | 系统消息 | 更新内容的用户或群聊的UserName组成的列表 |
11 | NOTE | 通知 | 通知文本(消息撤回等) |
6、附件的下载与发送
itchat 的附件下载方法存储在 msg 的 Text 键中.
发送的文件名(图片给出的默认文件名), 都存储在 msg 的 FileName 键中.
下载方法, 接受一个可用的位置参数(包括文件名), 并将文件响应的存储.
注意:下载的文件存储在指定的文件中,直接将路径与FileName连接即可.
如: msg["Text"]('/Users/locolName/Desktop/wx_'+msg['FileName'])
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
#msg.download(msg['FileName']) #下载文件(两种函数实现相同)
#下载文件 (默认保存在当前文件夹下,可以修改路径)
# msg['Text']('/Users/local/Desktop/tempFile/wx_' + msg['FileName'])
msg['Text'](msg['FileName'])
#将下载的文件发送给发送者 @img -> 图片, @fil -> 文件
itchat.send('@%s@%s' % ('img' if msg['Type'] == 'Picture' else 'fil', msg["FileName"]), msg["FromUserName"])
7、群消息
增加了三个键值,如下:
isAt : 判断是否 @ 本号
ActualNickName : 实际 NickName(昵称)
Content : 实际 Content
import itcaht
from itchat.content import TEXT
@itchat.msg_register(TEXT, isGroupChat=True)
def text_reply(msg):
#判断是否有人@自己
if(msg.isAt):
#如果有人@自己,就发一个消息告诉对方我已经收到了信息
itchat.send_msg("已收到来自{0}的消息,内容为{1}".format(msg['ActualNickName'], msg['Text']),toUserName=msg['FromUserName'])
网友评论