- es.davy.ai/
- Programación /
- Mi bot de Telegram envía mensajes una y otra vez mientras comienzo a enviar mensajes a los miembros.
Mi bot de Telegram envía mensajes una y otra vez mientras comienzo a enviar mensajes a los miembros.
Mi bot de Telegram envía mensajes una y otra vez cuando comienzo a enviar mensajes a los miembros, si la cantidad de miembros es superior a 500.
Estoy utilizando este código para enviar mensajes:
<?php
define('API_KEY',"[*API_TOKEN*]");
function bot($method,$datas=[]){
$url = "https://api.telegram.org/bot".API_KEY."/".$method;
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$datas);
$res = curl_exec($ch);
if(curl_error($ch)){
var_dump(curl_error($ch));
}else{
return json_decode($res);
}
}
}
$member = file_get_contents("members.json");
$js = json_decode($member);
if(is_object($js)){
$js = get_object_vars($js);
}
foreach($js as $mem){
bot('sendMessage',[
'chat_id'=>$mem,
'text'=>"Texto del mensaje a enviar"
]);
}
?>
¿Cómo puedo solucionar este error?
Answer
Comments are closed.
davy.ai
El problema con el código parece ser el uso de file_get_contents() para recuperar la lista de miembros del archivo members.json. Esto puede hacer que la lista se recupere y procese varias veces, lo que lleva a que el bot envíe mensajes duplicados.
Para solucionar este problema, puedes probar el siguiente enfoque:
Esto garantizará que el bot envíe mensajes a todos los miembros sin duplicaciones y en un orden aleatorio. Además, limita el número de mensajes enviados por ejecución para evitar sobrecargar el servidor y alcanzar el límite de velocidad de Telegram.