Php FB messenger机器人无法获取回发有效负载

Php FB messenger机器人无法获取回发有效负载,php,laravel,facebook-chatbot,Php,Laravel,Facebook Chatbot,我正在开发一个facebook聊天机器人。我面临着一个我无法解决的问题。我正在拉维尔开发这个。在这里,我无法获取回发有效负载。这是我的密码 public function index(Request $request) { if ($request->hub_verify_token === $this->verifyToken) { echo $request->hub_challenge; exit; }

我正在开发一个facebook聊天机器人。我面临着一个我无法解决的问题。我正在拉维尔开发这个。在这里,我无法获取回发有效负载。这是我的密码

public function index(Request $request) { if ($request->hub_verify_token === $this->verifyToken) { echo $request->hub_challenge; exit; } $input = json_decode(file_get_contents("php://input"), true); $senderId = $input['entry'][0]['messaging'][0]['sender']['id']; $messageText = $input['entry'][0]['messaging'][0]['message']['text']; $pageId = $input['entry'][0]['id']; $accessToken = "access_token_that_got_from_fb"; //set Message if($messageText != "") { $answer = "Howdy! User"; } if($messageText == "hello") { $answer = 'Testing hello from bot'; } foreach ($input['entry'][0]['messaging'] as $message) { // When bot receive message from user if (!empty($message['postback'])) { $answer = 'got it tada'; } } //send message to facebook bot $response = [ 'recipient' => [ 'id' => $senderId ], 'message' => [ 'text' => $answer ] //json_encode($request->getContent()) ]; $ch = curl_init('https://graph.facebook.com/v2.11/me/messages?access_token='.$accessToken); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($response)); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); $result = curl_exec($ch); curl_close($ch); } 这里的信息是有效的。但回发负载请求不会发送到服务器。另一方面,在普通的php文件中使用相同的代码,我能够获得回发的回报

$hubVerifyToken = 'chatbot'; $accessToken = "access_token"; // check token at setup if ($_REQUEST['hub_verify_token'] === $hubVerifyToken) { echo $_REQUEST['hub_challenge']; exit; } // handle bot's anwser $input = json_decode(file_get_contents('php://input'), true); $senderId = $input['entry'][0]['messaging'][0]['sender']['id']; $messageText = $input['entry'][0]['messaging'][0]['message']['text']; $postback = isset($input['entry'][0]['messaging'][0]['postback']['payload']) ? $input['entry'][0]['messaging'][0]['postback']['payload'] : '' ; //set Message if($messageText == "hi") { $answer = "Hello"; } if($messageText == "hello") { $answer = "Hello there, welcome to Chatleads"; } if($postback) { $answer = "postback TADA"; } //send message to facebook bot $response = [ 'recipient' => [ 'id' => $senderId ], 'message' => [ 'text' => $answer ] ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/v2.11/me/messages?access_token=$accessToken"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($response)); curl_setopt($ch, CURLOPT_POST, 1); $headers = array(); $headers[] = "Content-Type: application/json"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch); $hubVerifyToken='chatbot'; $accessToken=“访问令牌”; //在安装时检查令牌 if($\u请求['hub\u验证\u令牌]===$hubVerifyToken){ echo$_请求['hub_挑战]; 出口 } //处理机器人的anwser $input=json\u解码(文件\u获取\u内容('php://input",对),; $senderId=$input['entry'][0]['messaging'][0]['sender']['id']; $messageText=$input['entry'][0]['messaging'][0]['message']['text']; $postback=isset($input['entry'][0]['messaging'][0]['postback']['payload'])$输入['entry'][0]['messaging'][0]['postback']['payload']:''; //设置消息 如果($messageText==“hi”){ $answer=“你好”; } 如果($messageText==“你好”){ $answer=“您好,欢迎来到聊天室”; } 如果($postback){ $answer=“postback TADA”; } //向facebook机器人发送消息 $response=[ “收件人”=>[“id”=>$senderId], 'message'=>['text'=>$answer] ]; $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,”https://graph.facebook.com/v2.11/me/messages?access_token=$accessToken”); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($response)); 卷曲设置($ch,卷曲设置桩,1); $headers=array(); $headers[]=“内容类型:应用程序/json”; curl_setopt($ch,CURLOPT_HTTPHEADER,$headers); $result=curl\u exec($ch); if(旋度误差($ch)){ echo“Error:”.curl_Error($ch); } 卷曲关闭($ch);
如何解决这个问题?有人能给我一个路径吗?

通过查看laravel.log文件解决了这个问题

$this->messageText  = isset($this->input['entry'][0]['messaging'][0]['message']['text']) ? $this->input['entry'][0]['messaging'][0]['message']['text'] : '' ;
messageText应该是这样的。这就是它导致错误的原因

$this->messageText  = isset($this->input['entry'][0]['messaging'][0]['message']['text']) ? $this->input['entry'][0]['messaging'][0]['message']['text'] : '' ;