2016-08-05 6 views
1

私のボット返信はメッセージに何度も止めることができますか?/getupdatesからデータを読み込んでいます。何らかの返信変数が必要ですが、実装方法はわかりませんメッセージに複数回返信する電報ボットを停止する方法

<?php 

$page = $_SERVER['PHP_SELF']; 
$sec = "60"; 

$bottoken = "218567218:AAGQMx6lYCOhRapUXxIG5b0EkXTQOJ5y3uw"; 
$website = "https://api.telegram.org/bot".$bottoken; 


$update = file_get_contents($website."/getupdates"); 

$updatearray = json_decode($update, TRUE); 

$length = count($updatearray["result"]); 
$chatid = $updatearray["result"][$length-1]["message"]["chat"]["id"]; 
$text = $updatearray["result"][$length-1]["message"]["text"]; 

if($text == 'hi'){ 
    file_get_contents($website."/sendmessage?chat_id=".$chatid."&text=hello"); 

} 
elseif($text == 'bye'){ 
    file_get_contents($website."/sendmessage?chat_id=".$chatid."&text=piss off"); 
} 

?> 

<html> 
    <head> 
    <meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'"> 
    </head> 
    <body> 
    </body> 
</html> 

答えて

4

memcacheはPHPで使用することも、単にデータベースを使用することもできます。

最後のupdate_idをmemcacheまたはデータベースに格納します。そうすれば、どのようなメッセージがすでに返答されているのかが分かります。次回は最後にupdate_idを取得し、それを増やしてから、新しいメッセージを受け取って応答します。

テレグラムのAPIドキュメントによると、最後にupdate_id +1をoffsetに、getUpdatesに渡すことができます。

+0

ブロードキャストメッセージを登録していないユーザーに送信しないようにするには、どのようにstopコマンドを取得できますか? –

関連する問題