4

電報メッセンジャーにより、プログラマーは独自のボットを構築できます。私のボットにはキーボードがあります。ユーザーはすべてのキーを選択でき、ボットは適切な応答を示します。私の例では、ユーザーが "mobile" または "/mobile" を押すと、ボットの応答は新しいキーボード: "sony"、"Nokia"、"Lg" です。また、nokia を押すと、ボットは適切な応答を示します。また、ユーザーは「Nokia」と直接入力して、ロボットが応答することもできます。

私の問題は次のとおりです。モバイルを押した後、「のみ」ユーザーにノキアを選択させるのはなぜですか? つまり、ユーザーが直接 nokia と入力すると、ボットは彼に「最初にモバイルを選択する必要があります」と表示します。

$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);
}
?>
4

1 に答える 1