Laravel 如何将新上下文发布到我的wit机器人?

Laravel 如何将新上下文发布到我的wit机器人?,laravel,guzzle,wit.ai,Laravel,Guzzle,Wit.ai,我正在使用Wit.ai编写一个机器人,我在理解上下文方面遇到了困难。更具体地说,如何/何时设置。据我所知,您可以通过在您认为合适的任何时间点发布到API来设置上下文,例如在执行wit故事中定义的函数时。至少这是我使用下面代码的目标方法。可悲的是,它产生了一个错误,所以我想知道,我是在试图以一种错误的方式设置上下文,还是我的Guzzle帖子有什么问题 private function storeUserName($entities) { $witcall = $this->

我正在使用Wit.ai编写一个机器人,我在理解上下文方面遇到了困难。更具体地说,如何/何时设置。据我所知,您可以通过在您认为合适的任何时间点发布到API来设置上下文,例如在执行wit故事中定义的函数时。至少这是我使用下面代码的目标方法。可悲的是,它产生了一个错误,所以我想知道,我是在试图以一种错误的方式设置上下文,还是我的Guzzle帖子有什么问题

    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
        ]
    ]);