Search code examples
phpfacebookmysqlifacebook-messenger-bot

Facebook messenger bot generic template not working


I am building a Facebook bot using api.ai and I have gotten to a point where I need to send responses using Facebook generic template. I fetch the list of items to listed from the database and put them in an array and assign to a variable. My problem is that the data is actually returned as shown by Ngrok but it not shown on Facebook as a generic template. Nothing shows. Here is my code.

while($result = mysqli_fetch_assoc($res)){
                    $array[] = array(

                             "title"=> $result['title'],
                              "image_url"=> $result['img_url'],
                              "subtitle"=> "See all our colors",
                                "buttons"=>[
                                      [
                                        "type"=>"postback",
                                        "title"=>$result['title'],
                                        "payload"=>$result['payload_id']
                                      ]
                                ]
                    );

                }

            if ($intentName == "sex"){
                    $data =json_encode([
                    'speech' => "Hi ".$firstname,
                    'displayText' => "test",
                    'source' => "source",
                    'data' => ["facebook" => [
                        "attachment"=>[
                        "type"=>"template",
                        "payload"=>[
                        "template_type"=>"generic",
                        "elements"=>[
                        //One attachment
                        $array
                        //First attachment ends

                        ]
                     ]
                    ]   ]
                ]

                ]);
                    echo $data; 
            }

Solution

  • I solved it. It should have been:

    "elements"=> $array