• 微信自动聊天机器人


    1.code

    #coding=utf8
    import requests
    import itchat
    
    KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
    
    def get_response(msg):
        # 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样
        # 构造了要发送给服务器的数据
        apiUrl = 'http://www.tuling123.com/openapi/api'
        data = {
            'key'    : KEY,
            'info'   : msg,
            'userid' : 'wechat-robot',
        }
        try:
            r = requests.post(apiUrl, data=data).json()
            # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
            return r.get('text')
        # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
        # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
        except:
            # 将会返回一个None
            return
    
    # 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法
    @itchat.msg_register(itchat.content.TEXT)
    def tuling_reply(msg):
        # 为了保证在图灵Key出现问题的时候仍旧可以回复,这里设置一个默认回复
        defaultReply = 'I received: ' + msg['Text']
        # 如果图灵Key出现问题,那么reply将会是None
        reply = get_response(msg['Text'])
        # a or b的意思是,如果a有内容,那么返回a,否则返回b
        # 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
        return reply or defaultReply
    
    # 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动
    itchat.auto_login(hotReload=True)
    itchat.run()
    
    

    2.result

  • 相关阅读:
    c++ 队列
    17:特殊类成员:函数指针5
    c++ deque 双端队列
    18:字符串-char型字符串
    c++ 16 this 和 继承 及继承机制中的构造函数 与 析构函数
    c++ string char* const char*
    c++ 小片段
    google protobuf 使用示例
    hibernate-cache
    hibernate-criteria查询(二)
  • 原文地址:https://www.cnblogs.com/yangjing000/p/8283844.html
Copyright © 2020-2023  润新知