← Вернуться к списку тем

рассылка в боте

Добрый день
можете предоставить пример как делать рассылку подписчикам?

Ответы


  • iMakeBots [10.08.2020 в 10:44 → Debetuz]
    Не тестировал

    
        // токен бота
        $token = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11';
        // текст
        $text = 'Hello';
        // id users
        $users = ['123', '456', '789'];
        // пробегаем по массиву
        foreach($users as $user) {
            // направляем сообщение
            file_get_contents('https://api.telegram.org/bot' . $token . '/sendMessage?chat_id=' . $user . '&text=' . urlencode($text));
        }
    
    
  • Ꮯʍуᴩɸиᴋ [11.09.2020 в 20:48 → iMakeBots]
    Здравствуйте. А можете подсказать как сделать, чтобы рассылку можно было сделать и с картинкой и без?
  • iMakeBots [12.09.2020 в 14:30 → Ꮯʍуᴩɸиᴋ]
    Не тестировал

    <?php
    header("HTTP/1.1 200 OK");
    header('Content-type: text/html; charset=utf-8');
    
    new SendBot();
    
    class SendBot
    {
        private $token = "ВАШ_ТОКЕН";
    
        public function __construct()
        {
            $this->send();
        }
    
        private function send() {
            $users = ['123', '456', '789'];
            // пробегаем по массиву
            foreach($users as $user) {
    	    $this->sendMessage($user, 'Hello');
    	    $this->sendPhoto($user, 'https://wm.timeweb.ru/images/posters/300x250/300x250-13.jpg');
            }
        }
    
        private function sendMessage($user_id, $text)
        {
            $data_send = [
                'chat_id' => $user_id,
                'text' => $text,
                'parse_mode' => 'html'
            ];
            return $this->botApiQuery("sendMessage", $data_send);
        }
    
        private function sendPhoto($user_id, $photo)
        {
            // готовим массив данных
            $data_send = [
                'chat_id' => $user_id,
                'photo' => $photo,
            ];
            // отправляем фотографию
            return $this->botApiQuery("sendPhoto", $data_send);
        }
    
        private function botApiQuery($method, $fields = array())
        {
            $ch = curl_init('https://api.telegram.org/bot' . $this->token . '/' . $method);
            curl_setopt_array($ch, array(
                CURLOPT_POST => count($fields),
                CURLOPT_POSTFIELDS => http_build_query($fields),
                CURLOPT_SSL_VERIFYPEER => 0,
                CURLOPT_RETURNTRANSFER => 1,
                CURLOPT_TIMEOUT => 10
            ));
            $r = json_decode(curl_exec($ch), true);
            curl_close($ch);
            return $r;
        }
    }
    ?>
  • Владюша [29.12.2020 в 13:51 → iMakeBots]
    Привет. Я подобным образом реализовал рассылку, но если юзеров 5 к, например, то скрипт может не дойти до конца и лечь. А бывает и доходит, не пойму в чем причина. Сталкивались ли Вы с таким ?
  • Jay Gatsby [18.05.2021 в 21:27 → Владюша]
    Как вы 5К юзеров в этот код записали ? или я не понял суть бота, он не рассылает сообщения по добавленным user_id а просто пишет Hello с картинкой на любое ему сообщение