php - 在程序中使用会话

时间:2015-11-12 05:54:37

标签: php telegram telegram-bot

Telegram messenger允许程序员建立自己的Bot。 我的机器人有键盘。用户可以选择每个键和机器人显示正确的响应。 在我的例子中,当用户按下" mobile"或" / mobile",机器人回复是新的键盘:" sony","诺基亚"," Lg"。通过按诺基亚,机器人显示正确的反应 用户也可以键入"诺基亚"直接和机器人回复

我的问题是: 是强迫用户选择诺基亚,"只有"按移动后? 换句话说,当用户直接输入诺基亚时,机器人会向他显示:"你需要首先选择移动设备"     

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

$client     = new Zelenin\Telegram\Bot\Api($token);

$chatid     = $data['message']['chat']['id'];
$text       = $data['message']['text'];
$messageid  = $data['message']['message_id'];


if($text == "/mobile" || "mobile"){ 
        $params     = array('chat_id' => $chatid, 'action' => 'typing');
        $response   = $client -> sendChatAction($params);
                //keyboard
        $keyboard = array("sony \xF0\x9F\x93\x9E","nokia \xF0\x9F\x8E\xA5","LG \xF0\x9F\x92\xB0");
        $start_keys = array('keyboard'=>array($keyboard));
        $encodedMarkup = json_encode($start_keys);
        $message = " \xF0\x9F\x93\x8C please press correct key ...";
        $content = array('chat_id' => $chatid,'reply_markup' => $encodedMarkup,'text' => $message);
        $response   = $client -> sendMessage($content);
        $response   = $client -> forwardMessage(array('chat_id' => $agroup, 
                'message_id' => $messageid, 'from_chat_id' => $chatid));
} else {
        $params     = array('chat_id' => $chatid, 'action' => 'typing');
        $response   = $client -> sendChatAction($params);
        $message = " \xF0\x9F\x93\x8C please press ...";    
        $response   = $client -> sendMessage($content);
}
?>

1 个答案:

答案 0 :(得分:1)

您可以将名为menu的字段添加到users表,并将默认设置为SelectMobile。 当用户按移动设备以外的其他设备时,请检查该字段,如果是SelectMobile,请他这样做。当用户按移动设备时,将该字段更新为SelectBrand。如果用户发送的不是品牌,请告诉他需要发送指定的品牌。