zoukankan      html  css  js  c++  java
  • 基于itchat定制聊天机器人

    #coding=utf8
    import requests
    import itchat

    #key自己到图灵注册一个

    KEY = '****************************************'

    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()  #运行

    ok,这样你就可以实现你的机器人愉快的玩耍了,have fun!

  • 相关阅读:
    适配器
    MouseListener
    键盘事件KeyListener
    【转】CxImage图像库的使用
    【转】Qt Mode/View
    【转载】VC++中的图像类型转换--使用开源CxImage类库
    Qt5 文本编辑
    【转载】设备坐标(窗口/window)和逻辑坐标(视口/viewport)
    【转载】Qt中的QString,QByteArray,Qchar, char*
    QT中QWidget、QDialog及QMainWindow的区别
  • 原文地址:https://www.cnblogs.com/hd-zg/p/8430186.html
Copyright © 2011-2022 走看看