2017-05-15 7 views
0

私はボットテレグラムのPHPに関する質問をしています。私のボットはこのフォーマットのnilai(space)[value]でリクエストを送信できます。ボットテレグラムPHP最後のコマンドにオブジェクトのパラメータを送信する

ロールス:

  1. ユーザー:ニライ(スペース)IT602
  2. ボット:メッセージの送信:メッセージ送信コードIT602のためのショーのオブジェクトデータを

を私は変更フォーマットニライ(スペース)をしたいです[値]はこれにロールします。

  1. ユーザー:メッセージを送信する - >ニライ< - これは/ニライ
  2. ボットのようなコマンドである: - :IT601
  3. ユーザー:メッセージを送信する - > IT602
  4. >してください例えば入力ニライコードを送信するメッセージ
  5. ボット:メッセージを送信するには、 - >コードIT602

を表示対象データは、この形式ニライ(空間)[値]と私のコードです。

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; 
    } 

} 

私は誰かが私を助けることができると思います:)

答えて

0

あなたは、ユーザーの「状態」を保存して、すべてのメッセージにそれを確認する必要があります。 など。

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'); 
     } 
    } 
} 

$statesには、すべてのユーザーの状態が格納されています。ユーザーがあなたの質問に答える過程でどこにいるのかを知っている状態に応じて。
ウェブフックを使用するようにボットを設定する場合は、この配列をスクリプトの最後のファイルシステムに保存して、スクリプトの先頭に読み込んでください。 (file_get_contents()file_put_contents()

+0

ありがとう、私はwebhook file_get_contents(// input)を使っています。一時的なメモリのような状態ですか?file_put_contents()を使って書き込みと読み込みを行うことはできますか$状態? – TomiTeruz

+0

一時的な記憶であり、はい、あなたは何とかそれを保存する必要があります。 –

関連する問題