Laravel 如何将新上下文发布到我的wit机器人?
我正在使用Wit.ai编写一个机器人,我在理解上下文方面遇到了困难。更具体地说,如何/何时设置。据我所知,您可以通过在您认为合适的任何时间点发布到API来设置上下文,例如在执行wit故事中定义的函数时。至少这是我使用下面代码的目标方法。可悲的是,它产生了一个错误,所以我想知道,我是在试图以一种错误的方式设置上下文,还是我的Guzzle帖子有什么问题Laravel 如何将新上下文发布到我的wit机器人?,laravel,guzzle,wit.ai,Laravel,Guzzle,Wit.ai,我正在使用Wit.ai编写一个机器人,我在理解上下文方面遇到了困难。更具体地说,如何/何时设置。据我所知,您可以通过在您认为合适的任何时间点发布到API来设置上下文,例如在执行wit故事中定义的函数时。至少这是我使用下面代码的目标方法。可悲的是,它产生了一个错误,所以我想知道,我是在试图以一种错误的方式设置上下文,还是我的Guzzle帖子有什么问题 private function storeUserName($entities) { $witcall = $this->
private function storeUserName($entities) {
$witcall = $this->wit->post($this->wit_base_url.'/converse',
[
'form_params' => [
'username' => $entities->contact[0]->value
],
'query' => [
'v' => '1',
'session_id' => 'vk-'.$this->thread_id
],
'headers' => [
'Authorization' => 'Bearer '.env('WIT_TOKEN', false)
]
]
);
return [
'msg' => 'nice',
'type' => 'msg'
];
}
我的错误:
ClientException in RequestException.php line 111:
Client error: `POST https://api.wit.ai/converse?v=1&session_id=vk-1` resulted in a `400 Bad Request` response:
Unable to parse context in body
事实证明,使用
form_params
是不正确的,改为json
,现在工作正常。像这样:
$call = $this->wit->request('POST', 'converse', [
'json' => $this->context,
'query' => [
'v' => '1',
'session_id' => 'vk-'.$this->thread_id
]
]);