php - 来自 Facebook Messenger 机器人的空消息

标签 php facebook facebook-messenger facebook-messenger-bot

我按照指南从 here 构建了一个 facebook Messenger 机器人

但在我的软件中,我总是收到空响应。

这里是我的机器人代码:



    define('PAGE_TOKEN',"xxx");
    define('VERIFY_TOKEN',"xxx");

    if(isset($_GET['hub_mode']) && isset($_GET['hub_challenge']) && isset($_GET['hub_verify_token'])) {
        if($_GET['hub_verify_token']==VERIFY_TOKEN && $_GET['hub_mode']=='subscribe') {
            echo $_GET['hub_challenge'];
        }
    }

    $input = json_decode(file_get_contents('php://input'), true);
    // Get the Senders Graph ID
    $sender = $input['entry'][0]['messaging'][0]['sender']['id'];
    // Get the returned message
    $message = $input['entry'][0]['messaging'][0]['message']['text'];

    error_log($input);
    error_log($sender);
    error_log($message);

验证阶段没问题,但是当我在 error_log 文件中向我的机器人发送消息时,我发现只有空值:



    [Sun Aug 13 17:35:49.617919 2017] [:error] [pid 22501] [client 173.252.124.11:18834]
    [Sun Aug 13 17:35:49.617951 2017] [:error] [pid 22501] [client 173.252.124.11:18834]
    [Sun Aug 13 17:35:49.617972 2017] [:error] [pid 22501] [client 173.252.124.11:18834]

这里还有我的访问日志:



    173.252.124.30 - - [13/Aug/2017:17:35:48 +0200] "POST /webhook HTTP/1.1" 301 3621 "-" "-"
    173.252.124.11 - - [13/Aug/2017:17:35:49 +0200] "GET /webhook/ HTTP/1.1" 200 328 "-" "-"

那么为什么 $input 变量总是空的?

最佳答案

173.252.124.30 - - [13/Aug/2017:17:35:48 +0200] "POST /webhook HTTP/1.1" 301 3621 "-" "-"
173.252.124.11 - - [13/Aug/2017:17:35:49 +0200] "GET /webhook/ HTTP/1.1" 200 328 "-" "-"

您的服务器使用 301 重定向响应 POST 请求,因此客户端 (Facebook) 接下来必须发出 GET 请求,因此您看不到更多的 POST 数据。

看到第一个 URL 是 /webhook,并被重定向到 /webhook/,这很可能只是一个自动尾部斜杠重定向,应该在您完成后修复在您的应用程序设置中指定带有尾部斜杠的正确 URL。

关于php - 来自 Facebook Messenger 机器人的空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45662764/

相关文章:

javascript - 识别函数 javascript 的元素

php - MySQL查询从多个表中选择,显示全部来自table1 +来自table2的一些数据

使用 Jquery 自动完成的 Php Mysql 搜索

Facebook OAuth "The domain of this URL isn' t 包含在应用程序的域中”

python - Facebook Messenger 机器人通用模板不起作用

facebook - 信使 : attachment type 'video' not working correctly?

PHP 嵌套 for 循环

php - 如何在 zf Controller 中跳过 View /布局

ruby-on-rails - Facebook Messenger 机器人 : postback. 回复 webhook 与数据库查询不匹配

facebook - 为什么我点击 Messenger 链接时会看到 "Leaving Facebook..."警告?