您的位置:首页 > 编程语言 > Python开发

python微信机器人之小i

2016-03-15 10:28 387 查看
前面介绍了图灵机器人的接入,但是在后面的聊天中发现这个鬼的智能化程度太低了,聊天一点都不好玩,不说和siri比吧,和我以前接触过的小i都没法比,

所以在顺着图灵的做法,把小i也嵌入进去了

微信接口还是用的wxbot这个框架,虽然这个框架不在地,代码变量的设置啊,还有部分功能的不完善,但是目前也懒的去找了,能用就行

小i的接口相对比较麻烦,他有一个header,而且其中还有他自己的加密算法,当然了,一步步的走下去也不麻烦,然而,,python是什么?我怎么可能自己去写呢,,果断google啊,serach:小i机器人api接口。 还真尼玛找到了,在csdn上别人实现的一个方法,然后就没有然后了,

把图灵接入微信的代码直接拷贝过来修改了一下接口,就没有了,

看起来貌似很简单,,,其实也确实简单,接口什么的都已经有了,直接嵌入就好了,而且别人都封装的挺好的了,

def XiaoI():
test_key = "ytsqcyFYsFou"
test_sec = "N32kQFnQo12AxaekmwBM"

signature_ask = xiaoi.ibotcloud.IBotSignature(app_key=test_key,
app_sec=test_sec,
uri="/ask.do",
http_method="POST")

signature_reg = xiaoi.ibotcloud.IBotSignature(app_key=test_key,
app_sec=test_sec,
uri="/recog.do",
http_method="POST")

signature_tts = xiaoi.ibotcloud.IBotSignature(app_key=test_key,
app_sec=test_sec,
uri="/synth.do",
http_method="POST")

params_tts = xiaoi.ibotcloud.TTSParams(url="http://vcloud.xiaoi.com/synth.do")
params_reg = xiaoi.ibotcloud.RegParams(url="http://vcloud.xiaoi.com/recog.do")
params_ask = xiaoi.ibotcloud.AskParams(platform="custom",
user_id="abc",
url="http://nlp.xiaoi.com/ask.do",
response_format="xml")

ask_session = xiaoi.ibotcloud.AskSession(signature_ask, params_ask)
return ask_session
#reg_session = xiaoi.ibotcloud.RegSession(signature_reg, params_reg)
#tts_session = xiaoi.ibotcloud.TTSSession(signature_tts, params_tts)

def getanswer(text):
return XiaoI().get_answer(text).http_body#.encode('gbk')


我在后面加了一个get函数,算是提取了一个接口吧,

想了会,

还是把微信和机器人的接口代码放上来吧

tulinoc = TuLin()
class MyWXBot(WXBot):
def handle_msg_all(self, msg):
if msg['msg_type_id'] == 4 and msg['content']['type'] == 0:
tulinoc.sendTextToTuLin(msg['content']['data'])
self.send_msg_by_uid(tulinoc.getReturnText(), msg['user']['id'])
if msg['msg_type_id'] == 3 and msg['content']['type'] == 0:
tulinoc.sendTextToTuLin(msg['content']['desc'])
self.send_msg_by_uid(tulinoc.getReturnText(), msg['user']['id'])
if msg['msg_type_id'] == 5 and msg['content']['type'] == 0:
tulinoc.sendTextToTuLin(msg['content']['data'])
self.send_msg_by_uid(tulinoc.getReturnText(), msg['user']['id'])
def getUserID(self):
CityinwuhanID = []
userCityName = u'徐州'
for user in self.contact_list:
if userCityName == user['City'].encode('utf-8'):
CityinwuhanID.append(self.get_user_id(user['NickName']))
#else:
#print "city:%s" %user['City'].encode('utf-8')
return CityinwuhanID
'''
def schedule(self):
userIDList = self.getUserID()
for userID in userIDList:
self.send_msg_by_uid('你好,我是图灵,一个自动化机器人,收到请不要回复,打扰了',userID)
self.send_msg(u'7小媛',self.get_contact_name(userID)['nickname'].encode('utf-8'))

time.sleep(10)
'''
def main():
bot = MyWXBot()
bot.DEBUG = True
bot.run()
if __name__ == '__main__':
main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: