zoukankan      html  css  js  c++  java
  • 微信的自动回复&接入聊天机器人

     今天偶尔发现了一个有趣的python库--itchat,可以实现微信的自动回复、防撤回,结合图灵机器人还能实现聊天机器人的作用

    简单介绍一下配置与工具

    win7旗舰版  pycharm  python2.7(我在用python3版本运行时png.py会发生报错,不知道大家那怎么样)

    这次用到的是python的itchat模块,关于itchat这里有很详细的介绍,同时也给出官方介绍:itchat

    首先就是安装itchat模块,直接在cmd中运行

    pip install itchat

    安装完成后就能静静的装逼了

    先给出防撤回以及自动回复的代码:

    #coding:utf-8
    import re
    import time
    
    import itchat
    from itchat.content import *
    import sys 
    reload(sys)
    sys.setdefaultencoding('utf8')  #由于我们返回的是中文,Unicode的编码问题,读取文件时使用的编码默认是ascii而不是utf8,所以这里我们要把默认编码设为utf8
    
    @itchat.msg_register([TEXT])   #这里我们先选择注册文本
    def reply(msg):   #首先设置防撤回,接着ruturn后的内容就是自动回复的内容,这个自动回复仅对好友生效,群里不会生效
        friend = itchat.search_friends(userName=msg['FromUserName'])
        itchat.send(r"Friend:%s -- %s    "
                    r"Time:%s    "
                    r" Message:%s" % (friend['NickName'], friend['RemarkName'], time.ctime(), msg['Text']),
                    toUserName='filehelper')
    
        return '快还钱'
    
    
    if __name__ == '__main__':#启动微信自动登录,二维码登录
        itchat.auto_login(True)
        itchat.run()

    防撤回功能是原理是将消息备份发送到文件助手toUserName='filehelper',由于是接入微信API,读取消息会比手机端快一些。

    如果要针对特定的人进行自动回复,这就就应该将return语句换为itchat.send(msg,toUserName=你的好友)

    接下来就是接入聊天机器人的环节了(贼好玩)

    首先要先去图灵机器人注册一个账号去整个机器人

    注册以后选择机器人管理-->创建机器人

    创建完成后,机器人设置-->终端设置,把页面往下拉能看到apikey,这个数据后面需要用到

    接下来编写我们的代码:

    # coding:utf-8
    import requests
    from wxpy import *
    import itchat
    import requests
    import json
    
    def get_response(_info):
        print(_info)                                       # 从好友发过来的消息
        api_url = 'http://www.tuling123.com/openapi/api'   # 图灵机器人网址
        data = {
            'key': '你的key',     
            'info': _info,                                 # 这是我们从好友接收到的消息 然后转发给图灵机器人
            'userid': 'wechat-robot',                      # 这里你想改什么都可以
        }
        r = requests.post(api_url, data=data).json()       # 把data数据发
        print(r.get('text'))                               # 机器人回复给好友的消息
        return r
    
    @itchat.msg_register(itchat.content.TEXT)      
    def text_reply(msg):
        return get_response(msg["Text"])["text"]           # 将信息转发给好友
    if __name__ == '__main__': itchat.auto_login(True) itchat.run()

    大家玩的开心!

    friend = itchat.search_friends(userName=msg['FromUserName'])
        itchat.send(r"Friend:%s -- %s    "
                    r"Time:%s    "
                    r" Message:%s" % (friend['NickName'], friend['RemarkName'], time.ctime(), reply_content),
                    toUserName='filehelper')
    
        itchat.send(r"我已经收到你在【%s】发送的消息【%s】稍后回复。--微信助手(Python版)" % (time.ctime(), reply_content),
                    toUserName=msg['FromUserName'])
    
    
    itchat.auto_login()
    itchat.run()
  • 相关阅读:
    Unity3d:Unknown type 'System.Collections.Generic.CollectionDebuggerView'1
    Unity3d:The requested item has been unloaded
    installshield 注册dll
    sql查找字符串是否包含字符
    asp获取勾选checkbox的值
    Pyqt5.2.1生成的.ui文件转换成.py
    scrapy爬虫的编写步骤
    IBM MQ 集成CXF 发送JMS 消息
    io输出流变为输入流
    hibernate flush clear的区别
  • 原文地址:https://www.cnblogs.com/Ragd0ll/p/8719147.html
Copyright © 2011-2022 走看看