没有合适的资源?快使用搜索试试~ 我知道了~
首页python实现微信接口(itchat)详细介绍
前言 itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如这些。该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个工具。如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮助你扩展你的个人的微信号、方便自己的生活。 安装 sudo pip install itchat 登录 itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态
资源详情
资源评论
资源推荐

python实现微信接口实现微信接口(itchat)详细介绍详细介绍
前言前言
itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。使用不到三十行的代码,你就可以完成一个能够处
理所有信息的微信机器人。当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如这些。该接口与公众号接
口itchatmp共享类似的操作方式,学习一次掌握两个工具。如今微信已经成为了个人社交的很大一部分,希望这个项目能够帮
助你扩展你的个人的微信号、方便自己的生活。
安装安装
sudo pip install itchat
登录登录
itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要
扫描二维码,如果加上hotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码,该参数生成一个静态文件
itchat.pkl用于存储登录状态
退出及登录完成后调用的特定的方法退出及登录完成后调用的特定的方法
这里主要使用的是灰调函数的方法,登录完成后的方法需要赋值在 loginCallback 中退出后的方法,需要赋值在 exitCallback 中.若不设置 loginCallback 的值,
将会自动删除二维码图片并清空命令行显示.
import itchat, time
def lc():
print("Finash Login!")
def ec():
print("exit")
itchat.auto_login(loginCallback=lc, exitCallback=ec)
time.sleep()
itchat.logout() #强制退出登录
回复消息回复消息
send
send(msg="Text Message", toUserName=None)
参数:参数:
msg : 文本消息内容文本消息内容
@fil@path_to_file : 发送文件发送文件
@img@path_to_img : 发送图片发送图片
@vid@path_to_video : 发送视频发送视频
toUserName : 发送对象发送对象, 如果留空如果留空, 将发送给自己将发送给自己.
返回值返回值
True or False
实例代码
# coding-utf-8
import itchat
itchat.auto_login()
itchat.send("Hello World!")
ithcat.send("@fil@%s" % '/tmp/test.text')
ithcat.send("@img@%s" % '/tmp/test.png')
ithcat.send("@vid@%s" % '/tmp/test.mkv')
send_msg
send_msg(msg='Text Message', toUserName=None),其中的的msg是要发送的文本,toUserName是发送对象, 如果留空, 将发送给自己,返回值为True或
者False

实例代码
import itchat
itchat.auto_login()
itchat.send_msg("hello world.")
send_file
send_file(fileDir, toUserName=None) fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒,返回值为True或者False
实例代码
import itchat
itchat.auto_login()
itchat.send_file("/tmp/test.txt")
send_image
send_image(fileDir, toUserName=None) 参数同上
实例代码
import itchat
itchat.auto_login()
itchat.send_img("/tmp/test.txt")
send_video
send_video(fileDir, toUserName=None) 参数同上
实例代码
import itchat
itchat.auto_login()
itchat.send_video("/tmp/test.txt")
注册消息方法注册消息方法
itchat 将根据接受到的消息类型寻找对应的已注册的方法.
如果一个消息类型没有对应的注册方法, 该消息将会被舍弃.
在运行过程中也可以动态注册方法, 注册方式与结果不变.
注册方法注册方法
不带具体对象注册, 将注册为普通消息的回复方法.
import itchat
from itchat.content import *
@itchat.msg_register(TEXT) #这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
def simple_reply(msg):
#这个是向发送者发送消息
itchat.send_msg('已经收到了文本消息,消息内容为%s'%msg['Text'],toUserName=msg['FromUserName'])
return "T reveived: %s" % msg["Text"] #返回的给对方的消息,msg["Text"]表示消息的内容
带对象参数注册, 对应消息对象将调用该方法,其中isFriendChat表示好友之间,isGroupChat表示群聊,isMapChat表示公众
号
import itchat
from itchat.content import *
@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
def text_reply(msg):
msg.user.send("%s : %s" % (mst.type, msg.text))

消息类型消息类型
向注册方法传入的 msg 包含微信返回的字典的所有内容.itchat 增加 Text, Type(也就是参数) 键值, 方便操作.
itcaht.content 中包含所有的消息类型参数, 如下表
参数参数 l类型类型 Text 键值键值
TEXT 文本 文本内容(文字消息)
MAP 地图 位置文本(位置分享)
CARD 名片 推荐人字典(推荐人的名片)
SHARING 分享 分享名称(分享的音乐或者文章等)
PICTURE 下载
方法
图片/表情
RECORDING 语音 下载方法
ATTACHMENT 附件 下载方法
VIDEO 小视频 下载方法
FRIENDS
好友邀
请
添加好友所需参数
SYSTEM
系统消
息
更新内容的用户或群聊的UserName
组成的列表
NOTE 通知 通知文本(消息撤回等)
附件的下载与发送附件的下载与发送
itchat 的附件下载方法存储在 msg 的 Text 键中.
发送的文件名(图片给出的默认文件名), 都存储在 msg 的 FileName 键中.
下载方法, 接受一个可用的位置参数(包括文件名), 并将文件响应的存储.
注意:下载的文件存储在指定的文件中,直接将路径与FileName连接即可,如msg[“Text”](‘/tmp/weichat’+msg[‘FileName’])
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
#msg.download(msg['FileName']) #这个同样是下载文件的方式
msg['Text'](msg['FileName']) #下载文件
#将下载的文件发送给发送者
itchat.send('@%s@%s' % ('img' if msg['Type'] == 'Picture' else 'fil', msg["FileName"]), msg["FromUserName"])
群消息群消息
增加了三个键值,如下:
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.auto_login()
itchat.run()
注册消息的优先级注册消息的优先级
总的来说就是后面注册同种类型的消息会覆盖之前注册的消息。
消息内容消息内容
注意:所有的消息内容都是可以用键值对来访问的,如msg[“FromUserName]就是查看发送
者,itchat.search_friends(userName=msg[‘FromUserName’])[‘NickName’]查看的是当发送者昵称
剩余11页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论0