Python 使用图灵机器人时 返回4001错误

在使用wxpy开发微信聊天机器人时,需要引入图灵机器人,在测试过程中,发现总是返回4001错误,在图灵的开发文档查到:加密方式错误!我都没加密啊!

后来才知道,原来我打开了密钥开关!把它关了就可以了!

Python 使用图灵机器人时 返回4001错误_第1张图片

使用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('出错啦~~, 下次别问这样的问题了')

 

你可能感兴趣的:(Python)