[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程批处理在线视频分享
返回列表 发帖

[技术讨论] 图灵机器人 for 微信

本帖最后由 ivor 于 2017-12-25 20:49 编辑

先命令安装pip install itchat
  1. #coding=utf8
  2. import requests
  3. import itchat
  4. #演示用key,改成自己的更稳定
  5. KEY = '8edce3ce905a4c1dbb965e6b35c3834d'
  6. def get_response(msg):
  7.     # 这里我们就像在“3. 实现最简单的与图灵机器人的交互”中做的一样
  8.     # 构造了要发送给服务器的数据
  9.     apiUrl = 'http://www.tuling123.com/openapi/api'
  10.     data = {
  11.         'key'    : KEY,
  12.         'info'   : msg,
  13.         'userid' : 'wechat-robot',
  14.     }
  15.     try:
  16.         r = requests.post(apiUrl, data=data).json()
  17.         # 字典的get方法在字典没有'text'值的时候会返回None而不会抛出异常
  18.         print(r.get('text'))
  19.         if r.get('code') == 100000:
  20.             return r.get('text')
  21.         if r.get('code') == 200000:
  22.             return "%s \n %s" % (r.get('text') , r.get('url'))
  23.         return
  24.     # 为了防止服务器没有正常响应导致程序异常退出,这里用try-except捕获了异常
  25.     # 如果服务器没能正常交互(返回非json或无法连接),那么就会进入下面的return
  26.     except:
  27.         # 将会返回一个None
  28.         return
  29. # 这里是我们在“1. 实现微信消息的获取”中已经用到过的同样的注册方法
  30. @itchat.msg_register(itchat.content.TEXT)
  31. def tuling_reply(msg):
  32.     # 如果图灵Key出现问题,那么reply将会是None
  33.     reply =  get_response(msg['Text'])
  34.     # 有内容一般就是指非空或者非None,你可以用`if a: print('True')`来测试
  35.     return "秘书:" + reply
  36. # 为了让实验过程更加方便(修改程序不用多次扫码),我们使用热启动
  37. itchat.auto_login(hotReload=True)
  38. itchat.run()
复制代码
2

评分人数

返回列表