问题描述
我在电报中创建了一个新方法作为 webhook 并且它已经被注册,
我的方法:
// https://api.telegram.org/bot[token]/setWebhook?url=https://xxx/main/execute/
// https://telegram.me/TheXXXBot?start=project register
function execute(){
// global telegram log file
$logFile = config_item('data_folder').date('Ymd').'/TELEGRAM_['.TRACECODE.']_['.$userId.'].log';
$this->CI->additional_function->create_path(config_item('data_folder').date('Ymd').'/');
file_put_contents($logFile,"/* check telegram bot */\n",FILE_APPEND);
$update = json_decode(file_get_contents("PHP://input"),TRUE);
$response = 'empty';
file_put_contents($logFile,sprintf("get post data : %s\n",json_encode($update)),FILE_APPEND);
if($update){
$chat_id = $update["message"]["chat"]["id"];
$message = $update["message"]["text"];
$fName = $update["message"]["from"]["first_name"];
$apiToken = "whoooshaaahhhhh";
$data = [
'chat_id' => $chat_id,'text' => 'Salam Kenal','parse_mode' => 'HTML'
];
if(strpos($message,"/start") === 0) {
$data['text']='Salam Kenal '.$fName.' !';
}else if(strpos($message,"/register") === 0) {
$partItem = explode(" ",$message);
$email = $this->CI->additional_function->set_value($partItem,1);
$data['text']=sprintf('email anda %s',$email);
}else if(strpos($message,"/help") === 0) {
$data['text']=sprintf('menu help disini');
}else{
$data['text']='tidak ada perintah '.$message;
}
}else{
die('harus dari telegram');
}
}
最后一个命令发送到当前机器人是 3 天前,但直到今天我仍然收到相同的消息, 我与我的机器人进行了密切聊天,但日志文件始终显示端点仍然使用相同的命令触发,/start 和 /register 命令每大约 1 分钟在相似的时间被捕获。
解决方法
发生这种情况是因为我使用的是 php 框架,因为我将它移动到 single.php 然后一切正常。