1、创建图灵机器人账户
注册图灵机器人账号并创建一个机器人服务:
http://www.tuling123.com/
2、添加微信授权公众号,微信扫描生成的二维码:
3、微信关注图灵机器人公众号; 根据提供的API接入的apikey,就可以通过Python来关联微信与图灵机器人, 进行人机交互了;
4、完成下面程序,并执行再扫码登录微信,此时你的微信就可以自动回复所有消息;
demo1:图灵机器人,自动回复所有微信好友和群消息
注:wxpy一个根据网页版微信的接口封装的库,如果没有库,可直接pip安装
#实例1:微信回复所有好友包括群消息#注册图灵机器人,然后微信关注公众号,授权,然后运行这个代码会自动回复微信信息;
from wxpy import *
#扫码登陆
bot =Bot()#初始化图灵机器人
tuling = Tuling(api_key='你申请的key')#自动回复所有文字消息
@bot.register(msg_types=TEXT)defauto_reply_all(msg):
tuling.do_reply(msg)#开始运行
bot.join()
demo2:查找好友列表,回复指定好友消息
#实例2:微信回复指定好友信息#注册图灵机器人,然后微信关注公众号,授权,然后运行这个代码会自动回复微信信息;
from wxpy import *
#扫码登陆
bot =Bot()#初始化图灵机器人
tuling = Tuling(api_key='你申请的key')#获取好友
dear = bot.friends().search('石头')[0]#模糊查询石头好友#使用图灵机器人自动与指定好友聊天
@bot.register(dear)defreply_my_friend(msg):print(msg)
tuling.do_reply(msg)
embed()#开始运行
bot.join():
demo3:控制台与图灵机器人直接对话
了解图灵机器人的API接口,注意这里是免费注册后测试用的,api官网没直接提供,如果是花钱注册的商用的,则系统会提供API,这里仅供参考
注意:请求数据和响应数据分别要编码和解码
#! /usr/bin/python3.4#实例3:图灵机器人直接交互(控制台输入)#_*_ encode:utf-8_*_
importjsonfrom urllib.request importurlopen,Requestfrom urllib.error importURLErrorfrom urllib.parse importurlencodeclassTuringChatMode(object):#初始化API请求地址
def __init__(self):#API接口地址
self.turing_url = 'http://www.tuling123.com/openapi/api?'
#定义人机交互方法
defbotInteraction (self,text):url_data=dict(
key= '你的key',
info=text,
userid= 'zyg',
)
self.request = Request(self.turing_url + urlencode(url_data))#设置并实例化Request
try:
w_data= urlopen(self.request)#发送请求
exceptURLError:raise Exception("No internet connection available to transfer txt data")
#断言了请求URL异常
except:raise KeyError("Server wouldn't respond (invalid key or quota has been maxed out)")#其他情况断言提示服务相应次数已经达到上限
response_text= w_data.read().decode('utf-8')#print(response_text)
json_result= json.loads(response_text)#将json格式进行解析
return json_result['text']if __name__ == '__main__':turing=TuringChatMode()whileTrue:
msg= input("\n我要说话:")if msg == 'quit':
exit("您已经退出了对话!") #设定输入quit,退出聊天。
else:
botMsg=turing.botInteraction(msg)print("图灵BOT回复我:",botMsg)
demo4:可以根据tkinter进行GUI布局,结合上面demo3实现聊天界面数据交互,此处略;