在使用wxpy开发微信聊天机器人时,需要引入图灵机器人,在测试过程中,发现总是返回4001错误,在图灵的开发文档查到:加密方式错误!我都没加密啊!
后来才知道,原来我打开了密钥开关!把它关了就可以了!
使用Python测试图灵机器人代码如下:
import sys
from urllib import request
import json
import requests
# 使用图灵机器人回复
def auto_reply_msg(TEXT):
print('tuling robot received.')
url = 'http://openapi.tuling123.com/openapi/api/v2'
api_key = '5aff3f0962264741a3db5718992a1095'
'''
payload = {'key': api_key,
'info': TEXT,
'userid': 'robot'}
'''
payload = {
"reqType":0,
"perception": {
"inputText": {
"text": TEXT
},
"selfInfo": {
"location": {
"city": "广州",
"province": "广东",
"street": "员岗路"
}
}
},
"userInfo": {
"apiKey": api_key,
"userId": "robot"
}
}
r = requests.post(url, data = json.dumps(payload))
result = json.loads(r.content)
_code = result['intent']['code']
_text = result['results'][0]['values']['text']
print('result : ', result)
print('_code : {}, _text : {}'.format(_code, _text))
return _text
另外,刚注册的图灵账号,是没有聊天次数的。需要实名认证,然后账户每天会有100次。
其他参考源码:
import json
import urllib.request
while 1:
try:
api_url = "http://openapi.tuling123.com/openapi/api/v2"
text_input = input('我:')
if text_input == 'exit':
break
req = {
"reqType": 0, # 输入类型 0-文本, 1-图片, 2-音频
"perception": # 信息参数
{
"inputText": # 文本信息
{
"text": text_input
},
"selfInfo": # 用户参数
{
"location":
{
"city": "深圳", # 所在城市
"province": "广东", # 省份
"street": "红花岭路" # 街道
}
}
},
"userInfo":
{
"apiKey": "347b39ee228b4b109dae7270cc08d3c8", # 改为自己申请的key
"userId": "0001" # 用户唯一标识(随便填, 非密钥)
}
}
# print(req)
# 将字典格式的req编码为utf8
req = json.dumps(req).encode('utf8')
# print(req)
http_post = urllib.request.Request(api_url, data=req, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(http_post)
response_str = response.read().decode('utf8')
# print(response_str)
response_dic = json.loads(response_str)
# print(response_dic)
intent_code = response_dic['intent']['code']
results_text = response_dic['results'][0]['values']['text']
print('机器人1号:', results_text)
# print('code:' + str(intent_code))
except KeyError:
print('出错啦~~, 下次别问这样的问题了')