欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

itchat聊天机器人--图灵机器人

程序员文章站 2022-06-04 09:16:05
...

参考链接:

http://itchat.readthedocs.io/zh/latest/tutorial/tutorial0/

ps:详情查看参考链接,很详细的。
里面就需要注册个图灵的账号:http://www.tuling123.com/,然后拿个key就行了。
itchat聊天机器人--图灵机器人

#coding=utf8
import requests
import itchat

KEY = '16b4c3957ab549aa9e74388d223d10fe'

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()


# #coding=utf8
# import requests
#
# apiUrl = 'http://www.tuling123.com/openapi/api'
# data = {
#     'key'    : '16b4c3957ab549aa9e74388d223d10fe', # 如果这个Tuling Key不能用,那就换一个
#     'info'   : 'hello', # 这是我们发出去的消息
#     'userid' : 'heimu', # 这里你想改什么都可以
# }
# # 我们通过如下命令发送一个post请求
# r = requests.post(apiUrl, data=data).json()
#
# # 让我们打印一下返回的值,看一下我们拿到了什么
# print(r)
# @itchat.msg_register(itchat.content.PICTURE)
# def print_content(msg):
#     return msg['Picture']
#
# itchat.auto_login(hotReload=True)

# itchat.auto_login()
# itchat.run()

# import itchat
# itchat.auto_login(hotReload=True)
#
# itchat.send(u'黑木', 'filehelper')
# import itchat
# import requests
#
# def get_response(msg):
#     api_url = "http://www.tuling123.com/openapi/api"
#     data = {'key': '16b4c3957ab549aa9e74388d223d10fe',
#             'info': msg,
#             'userid': 'heimu24'}
#
#     r = requests.post(api_url, data = data).json()
#     return r.get('text')
# @itchat.msg_register([itchat.content.TEXT])
# def print_content(msg):
#     return get_response(msg["Text"])
#
# itchat.auto_login()
# itchat.run()