我正在开发一个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); }
而我的路线是
Route::any('chatbot', 'ChatbotController@index');
这里的信息是有效的。但回发负载请求不会发送到服务器。另一方面,在普通的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);
如何解决这个问题?有人能给我指条路吗?
通过检查laravel.log文件解决了此问题。
$this->messageText = isset($this->input['entry'][0]['messaging'][0]['message']['text']) ? $this->input['entry'][0]['messaging'][0]['message']['text'] : '' ;
messageText应该是这样的。这就是它导致错误的原因。
我是否使用参数或可以避免,我基本上不希望用户输入他们的名字,我希望机器人自动做到这一点。
我正在运行(bio)python脚本,该脚本导致以下错误: 由于我的脚本与邮件没有任何关系,我不明白为什么我的脚本要查看/var/mail。 这里有什么问题吗?我怀疑它是否会有帮助,因为脚本似乎不是问题所在,但这是我的脚本: 这里有什么问题?糟糕的python设置?我真的不认为这是剧本。
这不是重复的:| 我添加了一个用于管理goup的新机器人。通过此信息: 我的机器人是管理员 我的机器人隐私被禁用 “启用”-您的机器人只会接收以“/”符号开头或通过用户名提及机器人的消息。“禁用”-您的机器人将接收人们发送到组的所有消息。当前状态是:禁用成功!新状态是:禁用 bot可以读取除其他bot消息外的所有成员!但可以在回复中看到信息。 我的tg api是:https://github.co
我已经使用C#创建了一个电报机器人,我想看看谁在发送消息时使用我的机器人。 我可以在私人聊天中获取人们向我的机器人发送消息的用户名,但在组中,我无法获取使用机器人的用户名它返回GroupName。 我用的方法是
问题内容: 考虑以下源代码, 如何检索列表变量中的两个名称(Name1,Name2)?我为“ Get Text”关键字尝试了以下xpath,但仅返回第一个。 请建议 问题答案: 您可以遍历以下元素: 这种方法有效,但是在有许多匹配项时速度很慢。
我试图安装chatterbot,但我得到了以下错误,我试图降级到chatterbot==1.0.5,但它仍然提出了错误,给出错误,而安装依赖关系 请帮助我没有愚蠢的答案提前谢谢你!aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa