2017-04-18 3 views
0

私はWit.aiを使ってボットを書いていますが、私は文脈を理解することに問題があります。より具体的にどのように/いつ設定するか。私が理解しているように、例えばウィジェットストーリーで定義された関数を実行する場合など、適切と思われる任意の時点でAPIにポストすることでコンテキストを設定します。少なくともそれは私が以下のコードで目指しているアプローチです。悲しいことに、エラーが発生しますが、間違った方法でコンテキストを設定しようとしているのですか、または私の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 

答えて

0

それはform_paramsを使用して判明したように、間違っていたjsonに変更し、今では正常に動作します。このように:

$call = $this->wit->request('POST', 'converse', [ 
     'json' => $this->context, 
     'query' => [ 
      'v' => '1', 
      'session_id' => 'vk-'.$this->thread_id 
     ] 
    ]); 
関連する問題