Bot Telegram PHP发送对象参数到last命令

时间:2017-05-15 18:57:11

标签: php bots telegram-bot

我对Bot Telegram PHP有疑问,My Bot是成功发送请求的格式为nilai(空格)[value]。

劳斯:

  1. 用户:发送消息:nilai(space)IT602
  2. Bot:发送消息:显示代码IT602的对象数据
  3. 我想要改变格式nilai(空格)[值]到此卷。

    1. 用户:发送消息 - > nilai< - 这是像/ nilai
    2. 这样的命令
    3. Bot:发送消息 - >请输入nilai代码,例如:IT601
    4. 用户:发送消息 - > IT602
    5. Bot:发送消息 - >显示代码IT602的对象数据
    6. 这是我的代码,格式为nilai(空格)[Value]。

      function prosesApiMessage($sumber)
      {
          $updateid = $sumber['update_id'];
      
          if(isset($sumber['message']))
          {
              $message = $sumber['message'];
      
              if(isset($message['text']))
              {
                  prosesPesanText2($message);
              } 
          }
      
      
          return $updateid;
      }
      
      function prosesPesanText2($message)
      {
          $idpesan = $message['message_id'];
      
          $balas = $message['reply_to_message'];
      
          $pesan = $message['text'];
          $idchat = $message['chat']['id'];
          $namamu = $message['from']['first_name'];
          $iduser = $message['from']['id'];
      
      
          //untuk memisahkan antara format dan inputan
          $pecah = explode(' ', $pesan, 3);
          $katapertama = strtolower($pecah[0]);
      
      
          switch ($katapertama) 
          {
              case 'nilai':
                  sendApiAction($idchat);
                  if(isset($pecah[1])) 
                  {
                      $inputKode = $pecah[1];
                      // this funtion for show data nilai by code
                      $text = lihatNilai($iduser,$inputKode);
                  } 
                  else 
                  {
                      $text = "Gagal menampilkan nilai.\n";
                      $text .= "Format Nilai  Nilai (Kode Matkul)";
                  }
      
                  // sendMessageReply($idpesan, $idchat, $text);
                  sendApiKeyboard($idchat, $text, $keyboard_fungsi);  
                  break;
      
              case 'id':
                  sendApiAction($idchat);
                  $text = "ID User Anda adalah ".$iduser;
                  sendMessage($idchat, $text);
                  break;
      
              default:
                  # code...
                  break;
          }
      
      }
      

      我希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:0)

您必须保存用户的“状态”并在每条消息上进行检查。 例如。在伪代码中:

xsl:output

您可以看到on message { if ($states[user_id] === 'expect nilai code') { sendMessage(user_id, ' show object data for code'.$text); $states[user_id] = null; } else { if ($msg_text === '/nilai') { $states[user_id] = 'expect nilai code'; sendMessage(user_id, 'please input the nilai code for example : IT601'); } } } 为每个用户存储状态。根据状态,您知道用户在回答您问题的过程中的位置 如果您将机器人设置为使用webhook,请确保将此数组保存到脚本末尾的文件系统中,并在脚本开头读取它。 (例如使用($statesfile_get_contents())。