#telegram #php-telegram-bot #node-telegram-bot-api
#telegram #php-telegram-bot #узел-telegram-bot-api
Вопрос:
я создаю новый метод как webhook в telegram, и он был зарегистрирован,
мой метод :
// 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 : %sn",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 минуту.
Ответ №1:
это произошло потому, что я использую фреймворк php, поскольку я переношу его на single.php тогда все работает должным образом.