2017-10-27 13 views
1

私は最近DialogFlowで作業しています。自分のWebサービスにPOSTを送信する必要があります。 これはSymfony et PHPのRestサービスです。DialogFlow(API.AI)REST with PHP

私は何かを試したが、うまくいかなかった。 チュートリアルではGoogle Cloudと連携していましたが、私はそれを使用したくありません。

WebhookのURLを自分で変更しました。私はDialogFlowで何か変わっていませんでした。なぜなら、それはグーグルで良かったからです。そこには次のようになります。

/** 
* @Rest\View() 
* @Rest\Post("/testDialogBot") 
*/ 
public function testDialogBotAction(Request $request) 
{ 
    $re = "Test reponse"; 
    $response = new Response(json_encode(array("speech" => $re, "displayText" => $re))); 
    $response->headers->set('Content-Type', 'application/json'); 
    return $response; 

} 

DialogFlowリターンのJSON:

"status": { 
    "code": 206, 
    "errorType": "partial_content", 
    "errorDetails": "Webhook call failed. Error: Request timeout." 
}, 

私は、それが働くことができると確信している私はおそらく悪い何かをします。

ありがとうございました。

答えて

0

[OK]を応答を送信することができれば、あなたはすべてのパラメータを必要としません。私のURLは間違っていて、DialogFlowはhttpsだけを受け入れるのではなく、httpだけを受け入れるようです。

0

official docsによると、レスポンスには、speech、displayText、data、contextOut adn sourceというフィールドがあります。 speechとdisplayTextだけを送信しています。おそらく他のものを追加することはそのトリックを行うでしょう。

また、応答のためのドキュメントに記載された制限値は以下のとおりです。サービス応答のための

タイムアウト - 5秒。サービスからの応答 で受信されたデータ - 最高64K。

チェックサーバは、これらのパラメータの範囲内で大丈夫です

関連する問題