2017-05-15 3 views
0

봇 텔레 그램 (Bot Telegram)에 대한 질문이 있습니다. 내 봇이이 형식의 nilai (space) [value]와 함께 요청을 보내면 성공합니다.봇 텔레 그램 PHP가 마지막 명령으로 객체 매개 변수 보내기

롤스 :

  1. 사용자 : nilai (공간) IT602
  2. 봇 : 메시지를 보낼 메시지를 보낼 : 쇼 객체 데이터를 코드 IT602에 대한

내가 (공간) 변경 형식 nilai을 원하는 [값]이 롤백됩니다.

  1. 사용자 : 보내는 메시지 -> nilai < -이이 같은 명령/nilai
  2. 봇 : 보내는 메시지 -> 입력을 예를 들어 nilai 코드를하시기 바랍니다 : IT601
  3. 사용자 : 보내는 메시지 -> IT602
  4. 봇 : 메시지를 보내기 -> 코드 IT602

에 대한 표시 오브젝트 데이터를이 형식 nilai (공간) [가치]와 내 코드입니다.

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 저장 모든 사용자의 상태가. 사용자가 질문에 대답하는 과정에있는 상태를 알고있는 상태에 따라.
webhook을 사용하도록 봇을 설정하는 경우이 배열을 스크립트의 끝에 파일 시스템에 저장하고 스크립트 시작 부분에서 읽어 들여야합니다. (예 : (file_get_contents()file_put_contents())

+0

답변을 주셔서 감사합니다. 예 web_ook_get_contents (// input)을 사용하고 있습니다. 임시 메모리와 같은 상태입니까? file_put_contents()를 사용하여 쓰기 및 읽기 변수 $를 사용할 수 있습니까? 상태? – TomiTeruz

+0

임시 메모리이며 예, 어떻게 든 저장해야합니다. –