I have written fulfillment linking database to MySQL database but dialogflow returns the status Webhook call failed. Error: Failed to parse webhook JSON response: Expect message object but got '
I have tried to look into the formats of json for v1 and v2 of dialogflow without much success. I have attached my fulfillment code below
<?php
include ("db_regusers.php);
include ("function_regusers.php);
$update_response = file_get_contents("php://input");
$update = json_decode("$update_response, true);
$varresultaction = $update["queryResult"["action"];
$messages = $update["queryResult"]["queryText"];
$session = $update["session"];
$search =(isset($update["queryResult"][parameters"]["search"]?$update["queryResult"]["parameters"["search"]:null);
$firstname=(isset($update["queryResult"]["parameters"]["firstname"])?$update["queryResult"]["parameters"]["firstname"]:null);
$lastname=(isset($update["queryResult"]["parameters"]["lastname"])?$update["queryResult"]["parameters"]["firstname]:null);
$policynumber=(isset($update["queryResult"]["parameters"]["policynumber"])?$update["queryResult"]["parameters"]["policynumber"]:null);
$id(isset($update["queryResult"]["parameters"]["id"])?$update["queryResult"]["parameters"]["id"]:null);
$ignore1 = "";
$sessionunique = "";
if ($session != "")
{
$list = list($ignore1,$sessionunique) = explode('sessions/',$session);
}
else
{
$nothing = "You do not have a session";
sendMessage(array(
"source"=>null,
"fulfillmentText"=>$nothing
}
exit;
}
if($varresultaction=="display_data_to_edit")
{
$response= display_data_to_edit($id,$link,$mySQLserver,$mySQLdefaultdb,$mySQLuser,$mySQLpassword);
sendMessage (array(
"source" => null,
"fulfillmentText"=>$response
));
exit;
}
if($varresultaction == "entry_data")
{
$id = add_data($firstname,$lastname,$policynumber,$id,$mySQLserver,mySQLdefaultdb,mySQLuser,mySQLserver,mySQLpassword);
$response = "data has been saved, your access_code is ".$last_ID";
sendMessage (array(
"source"=> null,
"fulfillmentText"=>$response));
exit;
}
if ($varresultaction==view_data)
{
if ($id=="all")
{
($id="")
}
response = view_data($id,$link,$mySQLserver,$mySQLdefaultdb,$mySQLuser,$mySQLpassword);
sendMessage (array(
"source"=> null,
"fulfillmentText"=>$response
));
exit;
}
if($varresultaction=="delete_data")
{
$response = delete_data($id,$link,$mySQLserver,$mySQLdefaultdb,mySQLpassword);
sendMessage (array(
"source"=>null,
"fulfillmentText"=>$response
));
exit;
}
if ($varresultaction == "search_data")
{
$response = search_data($search,$link,$mySQLserver,$mySQLdefaultdb,$mySQLuser,$mySQLpassword)
sendMessage (array(
"source"=> null,
"fulfillmentText" => $response
));
exit;
}
if ($varresultaction=="update_data")
{
$response = update_data($id,$firstname,$policynumber,$link,$mySQLserver,$mySQLdefaultdb,mySQLuser,mySQLpassword);
sendMessage (array(
"source"=> null,
"fulfillmentText" => $response
));
exit;
}
?>
the code should be able to read and write user input to database but is returning the error instead