首页 > 解决方案 > 如果用户在一段时间后没有交互,请执行一些操作 - PHP

问题描述

我正在构建一个 whatsapp 机器人,该机器人可以完全运行,但如果用户在一段时间后不与 api 交互,我想做一个 API 调用。我尝试使用会话,但不工作,我尝试了以下代码。

session_start();

//**my bot code**

$minutesBeforeSessionExpire=30;
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > (2))) {

    $data2 = [
        'phone' => $_SESSION['phone'],
        'body' => 'Hello, Andrew!',
    ];
    $json2 = json_encode($data2);
    $options2 = stream_context_create(['http' => [
            'method'  => 'POST',
            'header'  => 'Content-type: application/json',
            'content' => $json2
        ]
    ]);
    $result2 = file_get_contents('api_call', false, $options2);
    session_unset();     // unset $_SESSION   
    session_destroy();   // destroy session data  
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity

标签: phpapi

解决方案


不幸的是,“任何 API”都是纯粹的“服务器端”。因此,当任何人“未回复”时,它无法“做出反应”。它唯一能做的就是,在收到 [任何……] 后续请求时,说:“对不起,太晚了!”

关键是响应是被动的,而不是主动的。


推荐阅读