Itchat 微信聊天机器人

微信聊天机器人(Itchat)

不务正业,想起干点啥有意思的事,于是想起了用聊天机器人去调戏微信好友也许会有点意思吧,于是参照别人写的东西,自己也浅尝一下。基本原理还是很简单的,就是让机器人替你去聊天。

主要有以下几点:

  • 库文件
  • 图灵机器人
  • Itchat接入网页版微信
  • 登录失败的问题
  • Reference

库文件

'''
主要使用的就是以下两个库
'''
import itchat # 微信接入库
import requests # 网络库

图灵机器人

这个可以免费在http://www.turingapi.com/上申请,申请之后可以获得一个KEY码,将图灵机器人和微信信息接上之后,就能实现自动聊天功能,所以说,我们的身份就是皮条客,将微信和机器人勾兑到一起。

关于KEY码的申请,这篇文章https://blog.csdn.net/weixin_41137655/article/details/83387792已经写得很明白,有不懂的地方作为参阅。


# Tuling key
KEY = '98d1f00aafd1465*********f84b8d77f'


# 获取图灵信息
def TulingIsMe(info):
    tulingurl = 'http://www.tuling123.com/openapi/api'
    
    '''
        以下信息就是发送给图灵机器人的,
        kEY:就是官网申请的key码
        info:是你发送给机器人的信息(要想实现机器人聊天,就把你收到的微信消息发送给机器人就行了)
        userid:随便取一个就行
    '''
    data = {
        'key': KEY,
        'info': info,
        'usrid': 'RiskyJr_Wechat_Robot'
    }
    try:
        r = requests.post(tulingurl, data=data).json()
        print(r.get('text'))
        return r.get('text')#图灵机器人对你发送的info的回复
    except:
        print('none')
        return

 ps:笔者在使用的过程中,发现这个图灵机器人距离完成图灵测试还很远啊,不知道是不是由于打开方式不对,还是其他原因。

 Itchat接入网页版微信

这部分主要的功能是实现微信接入。在测试这部分的过程中,笔者有两个微信号,其中一个登录不了,


# 特定聊天对象
@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING, PICTURE])
def reply_someone(msg):
    person_1 = itchat.search_friends(name='么么')
    person_2 = itchat.search_friends(name='RISKY')
    RISKY = person_1[0]['UserName']
    PIGGIRL = person_2[0]['UserName']
    
    # 只回复特定人的信息 通过打印msg信息实现
    # 这个地方和很多网上的不太相同 ,因为我没有发现msg.User
    if msg['FromUserName'] == RISKY or msg['FromUserName'] == PIGGIRL:
        # 对于不同类型信息的处理
        if msg['MsgType'] == 1:  # 文本 | 地理信息
            print(msg['Text'])
            return TulingIsMe(msg['Text'])

        if msg['MsgType'] == 3:  # 图片
            print(msg['Text'])
            return TulingIsMe(msg['Text'])
        if msg['MsgType'] == 34:  # 语音消息
            pass
        if msg['MsgType'] == 42:  # 名片
            pass
        if msg['MsgType'] == 62:  # 小视频
            pass
        if msg['MsgType'] == 47:  # 动画表情
            print(msg['Text'])
            return TulingIsMe(msg['Text'])
        if msg['MsgType'] == 49 and msg['AppMsgType'] == 5:  # 普通链接或应用分享消息
            pass
        if msg['MsgType'] == 49 and msg['AppMsgType'] == 3:  # 音乐链接消息
            pass
        if msg['MsgType'] == 49 and msg['AppMsgType'] == 2001:  # 红包消息
            pass
        if msg['MsgType'] == 10000:  # 系统消息
            pass
    else:
        pass


# 微信群
@itchat.msg_register([itchat.content.TEXT], isGroupChat=True)  # 群消息的处理
def reply_group(msg):
    print(msg)
    # 只回复特定聊天群
    ChatRoomID = '@@***ace6a9e45855ee3'
    if msg['FromUserName'] == ChatRoomID:
        return
        if msg['MsgType'] == 1:  # 文本 | 地理信息
            print(msg['Text'])
            return TulingIsMe(msg['Text'])
        if msg['MsgType'] == 3:  # 图片
            print(msg['Text'])
            return TulingIsMe(msg['Text'])
        if msg['MsgType'] == 34:  # 语音消息
            pass
        if msg['MsgType'] == 42:  # 名片
            pass
        if msg['MsgType'] == 62:  # 小视频
            pass
        if msg['MsgType'] == 47:  # 动画表情
            # print(msg['Text'])
            # return TulingIsMe(msg['Text'])
        if msg['MsgType'] == 49 and msg['AppMsgType'] == 5:  # 普通链接或应用分享消息
            pass
        if msg['MsgType'] == 49 and msg['AppMsgType'] == 3:  # 音乐链接消息
            pass
        if msg['MsgType'] == 49 and msg['AppMsgType'] == 2001:  # 红包消息
            pass
        if msg['MsgType'] == 10000:  # 系统消息
            pass
    else:  # 其他群聊直接忽略
        pass


# 登录微信
def LogWechat(replay_flag):
    itchat.auto_login(hotReload=True)
    itchat.send(u'RiskyJunior_Wechat_Robot SignedUp', toUserName='filehelper')
    if replay_flag == True:
        pass
    else:
        pass
    itchat.run()

if __name__ == '__main__':
    LogWechat(True)

登录失败的问题 

 关于这部分有需要说明:

 

  1. 可能会出现登录不上的问题(建议先在网页版微信进行登录测试)。
登录网页版扫码之后会出现: 
1203为了你的帐号安全,
此微信号已不允许登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录
。Windows微信下载地址:https://pc.weixin.qq.com  Mac微信下载地址:https://mac.weixin.qq.com

/*
    如果遇到这种问题,建议更换微信号尝试,因为我也不知道有没有其他办法解决。
    如果有,烦请告知。
*/

最后附上测试结果吧:

Itchat 微信聊天机器人_第1张图片

Reference:

https://itchat.readthedocs.io/zh/latest/《itchat说明文档》

https://blog.csdn.net/weixin_41137655/article/details/83387792《Python + itchat 实现微信机器人聊天(支持自动回复指定群聊)》

https://blog.csdn.net/Lynn_coder/article/details/79436539《itchat给指定联系人发消息》

你可能感兴趣的:(Itchat 微信聊天机器人)