图灵及SmartQQ接口
一,图灵接口
- 注册账号创建机器人 (http://www.tuling123.com/member/robot/index.jhtml)
- api接口文档 (https://www.kancloud.cn/turing/www-tuling123-com/718227)
- 数据接口地址 (http://openapi.tuling123.com/openapi/api/v2)
- 请求方式:http post,请求参数为json
- urlopen,Request (urlopen:打开一个连接,Request:是用来封装打开一个链接的时候你可能需要提交一些数据)
-
from urllib.request import urlopen,Request
-
单纯的访问用urlopen就可以
-
但是需要post提交数据就得用request结合提交数据体
- 代码 编写:
from urllib.request import urlopen,Request #urlopen:打开一个连接,Request:是用来封装打开一个链接的时候你可能需要提交一些数据) import json def tl_func(qusetion): url = 'http://openapi.tuling123.com/openapi/api/v2' data = json.dumps({ "perception": { "inputText": { "text": "%s" % qusetion }, }, "userInfo": { "apiKey": "08a4694a51b145b4ab7178d86a1ae8d7", "userId": "D46D6DD8273C" #D4-6D-6D-D8-27-3C } }).encode('utf-8') headers = {'Content-Type':'application/json'} req = Request(url=url,data=data) response = json.loads(urlopen(req).read().decode('utf-8')) #josn.loads 定义返回数据类型为字典 #print(response['results'][0]['values']['text']) #取出图灵返回的数据值 result = response['results'] res = '' for var in result: res += '/n'.join(list((var['values'].values()))) #这个意思是不管图灵返回几个数据 我们都依次取出来以换行的形式拼接起来,变成一行一行的数据 else: return res return None def main(): result = tl_func(qusetion) print(result) if __name__ == '__main__': qusetion = '你叫什么呀' main() ''' 下面是取出response返回的字典数据结构,然后可以取出图灵返回的数据,提供参考 { 'intent': {'actionName': '', 'code': 10004, 'intentName': ''}, 'results': [ { 'resultType': 'text', 'values': {'text': '我们每天都打招呼吧'}, 'groupType': 1 } ], 'emotion': { 'robotEmotion': {'d': 0, 'a': 0, 'emotionId': 0, 'p': 0}, 'userEmotion': {'d': 0, 'a': 0, 'emotionId': 10300, 'p': 0} } } '''运行结果:
E:\python学习资料\上课代码编写\代码练习py>python e:/python学习资料/上课代码编写/代码练习py/图灵接口.py 叫我图灵机器人就可以了 E:\python学习资料\上课代码编写\代码练习py>python e:/python学习资料/上课代码编写/代码练习py/图灵接口.py 人见人爱的图灵机器人,记住了吧~
二,SmartQQ接口