PHP中的Fecebook Messenger Bot并不总是响应用户

我在php中有相对简单的Facebook Messenger bot用于研究目的:

$access_token = "xxxxxxx";
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];

if ($verify_token === 'MY_VERIFICATION_TOKEN') {
  echo $challenge;
}

$input = json_decode(file_get_contents('php://input'), true);

$sender = $input['entry'][0]['messaging'][0]['sender']['id'];
$message = $input['entry'][0]['messaging'][0]['message']['text'];

$url = 'https://graph.facebook.com/v2.6/me/messages?access_token='.$access_token.';

$ch = curl_init($url);

if($message=="hi")
{
        $jsonData = '{
        "recipient":{
                "id":"'.$sender.'"
        },
    "message":{
            "text":"hello!"
    }
    }';
}

$jsonDataEncoded = $jsonData;

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

$result = curl_exec($ch);

我的cron工作与开发人员指南相同

curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=xxxxxx"

基本上,除了连接和一个响应之外什么也没有
当我个人发送“hi”(作为页面所有者和应用程序所有者)时,我的机器人总是正确地响应,但当其他人试图打个招呼时 – 机器人有时会响应,有时不会(通常不会,在5个案例中机器人响应一次)

另外,当我访问我的脚本网址时,它会给我一个错误:

{"error":{"message":"(#100) The parameter recipient is required","type":"OAuthException","code":100,"fbtrace_id":"DvrO1UEw5BJ"}}

请帮我设置一下.

解决方法:

如果您忘记设置内容类型,也可能会发生这种情况.

上一篇:php – 停止机器人没有验证码 – 扭曲


下一篇:c# – 如何在本地托管.Net Bot应用程序