在API请求中使用Dialogflow获取代码400

时间:2019-12-29 02:30:26

标签: api axios dialogflow dialogflow-fulfillment

这是我第一次使用Dialogflow,所以可能我的错误非常愚蠢。

这是我的问题:

1)我创建了一个样本代理“小谈话”。

2)我在实现部分启用了Webhook。我设置了发出请求的Web服务器的URL以及该Web服务器的auth(用户名,密码)。

3)我在该Web服务器上上传了一个简单的网页,其中包含一个如下所示的API请求(这是其指南中引用的示例json):

axios({
    method: 'POST',
    url: 'https://api.dialogflow.com/v1/query?v=20150910',
    headers: {
        'Authorization': 'Bearer ad7829588896432caa8940a291b66f84',
        'Content-Type': 'application/json',
    },
    body: {
        "contexts": [
        "shop"
        ],
        "lang": "en",
        "query": "I need apples",
        "sessionId": "12345",
        "timezone": "America/New_York"
    }
})  
.then((response) => {
    console.log(response);
})
.catch((error) => {
    console.log(error);                
})

我不断收到此错误:

Cannot parse json. Please validate your json. Code: 400"

我唯一能做的是,我注意到Dialogflow现在正在使用代理设置中默认启用的API V2,并且似乎不再有V1可用的选择。但这可能与我的问题无关。

谢谢!

1 个答案:

答案 0 :(得分:1)

解决了!

在json请求中,而不是

body: {...}

我替换为

data: {...}

也许很明显,但是我绝对不是这些新手!