Отправка сообщений на каналы - bot.send_message больше не работает - PullRequest
0 голосов
/ 15 октября 2019

Некоторое время назад я использовал для отправки сообщений на такие каналы:

def broadcast(bot, update):
    bot.send_message(channel_id, text)

И я отвечал бы пользователю с помощью:

def reply(bot, update):
    update.message.reply_text(text)

Теперь кажется, чтоаргументы для CommandHandlers изменены с (bot, update) на (update, context). В результате я все еще могу ответить пользователю с аргументом update, примерно так:

def reply(update, context):
    update.message.reply_text(text)

Но я больше не могу отправлять сообщения на канал. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Из документации , bot доступно в context.

Так какая информация хранится в CallbackContext? Параметры, отмеченные звездочкой, будут установлены только при определенных обновлениях.

  • bot
  • job_queue
  • update_queue
  • ...

Таким образом, функцию

def broadcast(bot, update):
    bot.send_message(channel_id, text)

можно переписать так:

def broadcast(update, context):
    context.bot.send_message(channel_id, text)
0 голосов
/ 17 октября 2019

Как упомянуто выше bot доступно в context, поэтому в качестве альтернативы функцию

def broadcast(bot, update):
    bot.send_message(channel_id, text)

можно переписать как

def broadcast(update, context):
    bot = context.bot
    bot.send_message(channel_id, text)
...