Ошибка индекса при попытке отправить сообщение боту телеграммы - PullRequest
0 голосов
/ 25 марта 2020

В моем коде я хочу отправить несколько строк в списке некоторым пользователям с указанием c chat_id, и я использую 1 для l oop, и я получаю ошибку индекса, потому что в моем списке chat_id меньше элементов, чем список строк.

        def sendTextMessage(self):
        for i in range(len(self.chat_id) + 10):
            link = random.choices(importinks())
            url = 'https://api.telegram.org/botMY_BOT_TOKEN/sendMessage?chat_id={}&text={}'.format(self.chat_id[i],link)
            r = requests.get(url)
            time.sleep(2)
            print(r.status_code)
            print(self.chat_id)

Может кто-нибудь объяснить мне, как это исправить без использования вложенных циклов for?

1 Ответ

1 голос
/ 25 марта 2020

Если вы хотите отправить, как вы говорите, 15 случайных сообщений каждому идентификатору пользователя, вы должны использовать al oop, как показано ниже:

for id in self.chat_id:    
    for i in range(15):
            link = random.choices(importinks())
            url = 'https://api.telegram.org/botMY_BOT_TOKEN/sendMessage?chat_id={}&text={}'.format(id,link)
            r = requests.get(url)
            time.sleep(2)
            print(r.status_code)
            print(self.chat_id)

Я не уверен, что делать о ваших проблемах со временем, за исключением уменьшения количества отправляемых вами случайных ссылок.

...