首先进入图灵机器人官网
http://operation.tuling123.com/
注册一个图灵机器人
api接入
apikey:691fd571a0cd4014bfc059f5d21c17d5
密钥: 5593b7cfdc7a3145
pip install -U wxpy //安装微信的登录程序
from wxpy import *
bot = Bot()
//扫码微信登录
bot.file_helper.send(“hello”)
给微信的文件传输助手发送短信
-- coding: utf-8 --
import json
import requests
from wxpy import *
#调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(text):
url = “http://www.tuling123.com/openapi/api”
api_key = “691fd571a0cd4014bfc059f5d21c17d5”
payload = {
“key”: 691fd571a0cd4014bfc059f5d21c17d5,
“info”: text,
“userid”: “5593b7cfdc7a3145”
}
r = requests.post(url, data=json.dumps(payload))
result = json.loads(r.content)
return "[tuling] " + result[“text”]
bot = Bot(console_qr=True, cache_path=True)
@bot.register(mp)
def forward_message(msg):
return auto_reply(msg.text)
embed()
found = bot.friends().search(‘钱广志’)
其中xx代表好友备注。
@bot.register(found)
def message(msg):
ret = “在吗”
return ret
embed()
在登录并且找到好友后就可以进行聊天了,
这里用到了@bot.register(),
这个就是把下面的函数绑定,
然后如果微信好友发消息的话,
就会调用该函数,
这个里面的
found就是你上面查找到的好友,这里就是把他们绑定在一起了,之后就可以自动帮你回复了,
ret就是回复的内容,而
msg中就存储的是好友发送的内容。
因为这个程序需要等待别人发送消息来,
所以需要在后面加上embed(),
相当于程序阻塞在那里,
要不然程序一下就运行完了,
就不能持续接发消息了。
from wxpy import *
#实例化,并登录微信
bot = Bot(cache_path=True)
#查找到要使用机器人来聊天的好友
my_friend = ensure_one(bot.search(u’钱广志’))
调用图灵机器人API
tuling = Tuling(api_key=‘691fd571a0cd4014bfc059f5d21c17d5’)
@bot.register()
tuling.do_reply(msg)
embed()
小爱 小度 //http://www.tuling123.com/openapi/api
苹果 siri
google // Google 人工智能
下面附上完整代码
import requests
import itchat
KEY = '691fd571a0cd4014bfc059f5d21c17d5'
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()