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

← К списку тем

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

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

  • Не тестировал

    
        // токен бота
        $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));
        }
    
    
    iMakeBots 10.08.2020 в 10:44
    • Здравствуйте. А можете подсказать как сделать, чтобы рассылку можно было сделать и с картинкой и без?
      𝚂𝚘𝚍𝚋𝚛𝚘𝚒𝚕 | Ꮯʍуᴩɸиᴋ🦄 11.09.2020 в 20:48
      • Не тестировал

        <?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;
            }
        }
        ?>
        iMakeBots 12.09.2020 в 14:30