我在电报中创建了新方法作为 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 分钟在类似的时间被捕获。