美文网首页
itchat 使用

itchat 使用

作者: best_su | 来源:发表于2019-04-06 19:56 被阅读0次

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'])

相关文章

网友评论

      本文标题:itchat 使用

      本文链接:https://www.haomeiwen.com/subject/jcsriqtx.html