@givi_m
Начинающий девелопер

Как вывести количество успешных/не успешных отправленных сообщений через TG api в числовом формате?

Всем привет.
сделал вот такой код для отправки рассылки всем юзерам бота:
тут

<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
set_time_limit(0);

//бд
$bd = new PDO('mysql:dbname=test;host=localhost', 'testuser', 'G9y8v7', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

//получаем айди юзеров 
function user() {
  global $bd;
  $stmt = $bd->query("SELECT `tg_id` FROM `user`");
  $data = $stmt->fetchAll();
  return $data;
 }
 
$datas = user();

//цикл
foreach ($datas as $value) {
$id = $value['tg_id'];
$message = "Test3";
$tokken = "ТОКЕН";
$filename = "https://api.telegram.org/bot".$tokken."/sendMessage?chat_id=".$id."&text=".urlencode($message)."&parse_mode=html";
file_get_contents($filename);
sleep(1);
}

?>


по завершению, на те айди кому не отправилось (скорее всего они заблокировали бота или я не так что-то сделал) выдает ошибки такого формата:

Warning: file_get_contents(https://api.telegram.org/botТОКЕН/sendMessage?chat_id=АЙДИТУТ&text=Test3&parse_mode=html): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/www-root/data/www/домен/1.php on line 26

Warning: file_get_contents(https://api.telegram.org/botТОКЕН/sendMessage?chat_id=АЙДИТУТ&text=Test3&parse_mode=html): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/www-root/data/www/домен/1.php on line 26

ну и вопрос, как вывести в числовом формате количество успешных и не успешных выполнений? буду благодарен за любые подсказки
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
094ikis09
@094ikis09
Medium Rare
<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
set_time_limit(0);

//бд
$bd = new PDO('mysql:dbname=test;host=localhost', 'testuser', 'G9y8v7', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

//получаем айди юзеров 
function user()
{
    global $bd;
    $stmt = $bd->query("SELECT `tg_id` FROM `user`");
    $data = $stmt->fetchAll();
    return $data;
}

$datas = user();
$error_count = 0;
//цикл
foreach ($datas as $value) {
    $id = $value['tg_id'];
    $message = "Test3";
    $tokken = "<TOKEN>";
    $filename = "https://api.telegram.org/bot" . $tokken . "/sendMessage?chat_id=" . $id . "&text=" . urlencode($message) . "&parse_mode=html";
    $check = @file_get_contents($filename);
    if ($check === false) {
        $error_count++;
    }
    sleep(1);
}
echo $error_count;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы