В телеграм боте не приходят уведомления оператору - Python

Узнай цену своей работы

Формулировка задачи:

Добрый день! Пытаюсь создать телеграм-бота по данному мануалу (https://habrahabr.ru/company/spottle/blog/303528/). Столкнулась с проблемой, что не приходят уведомления в телеграм оператора, хотя в консоли вижу, кто-что пишет.
Листинг программы
  1. import telebot
  2. import threading
  3. from tele_bot_users import *
  4. # Constants to indicate steps while user is entering password
  5. TEAM_USER_LOGGING = 0
  6. TEAM_USER_ACCEPTED = 1
  7. # Data structure for list of bot`s users
  8. team_users = TeamUserList()
  9. user_step = {}
  10. user_active_dialog = {}
  11. reply_data_db = {}
  12. token = ""
  13. bot = telebot.TeleBot(token)
  14. print(bot.get_me())
  15. def log(message, answer):
  16. print("\n ----------")
  17. from datetime import datetime
  18. print(datetime.now())
  19. print("Сообщения от {0} {1}. (id = {2}) \n Текст - {3}".format(message.from_user.first_name,
  20. message.from_user.last_name,
  21. str(message.from_user.id),
  22. message.text))
  23. @bot.message_handler(commands=['start'])
  24. def handle_start(message):
  25. user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
  26. user_markup.row('Есть вопрос')
  27. bot.send_message(message.from_user.id, 'Доброго времени суток, уважаемый пользователь!', reply_markup=user_markup)
  28.  
  29. @bot.message_handler(commands=['help'])
  30. def handle_text(message):
  31. answer = """Опишите свою проблему"""
  32. bot.send_message(message.chat.id, answer)
  33. log(message, answer)
  34. # Custom command to add user to an operator`s team
  35. @bot.message_handler(commands=['on'])
  36. def subscribe_chat(message):
  37. answer = "Введите кодовую фразу:"
  38. if message.chat.id in team_users:
  39. bot.reply_to(message, "Вы уже оператор!")
  40. log(message, answer)
  41. else:
  42. user_step[message.chat.id] = TEAM_USER_LOGGING
  43. bot.reply_to(message, answer)
  44. log(message, answer)
  45. # Custom command to remove user from an operator`s team
  46. @bot.message_handler(commands=['off'])
  47. def team_user_logout(message):
  48. answer = "Больше вы не получите ни одного сообщения"
  49. if message.chat.id not in team_users:
  50. bot.reply_to(message, "Вы итак не оператор")
  51. log(message, answer)
  52. else:
  53. team_users.remove_by_chat_id(message.chat.id)
  54. bot.reply_to(message, answer)
  55. log(message, answer)
  56. # Here we catch user message after '/on' command and interpret it as a password
  57. @bot.message_handler(func=lambda message: user_step.get(message.chat.id) == TEAM_USER_LOGGING)
  58. def team_user_login(message):
  59. answer = "Неправильная кодовая фраза! Попробуйте еще раз!"
  60. if message.text == '321':
  61. team_users.add(TeamUser(message.chat.id))
  62. user_step[message.chat.id] = TEAM_USER_ACCEPTED
  63. bot.reply_to(message, "Вы стали оператором!")
  64. log(message, answer)
  65. else:
  66. bot.reply_to(message, answer)
  67. log(message, answer)
  68. @bot.message_handler(content_types=["text"])
  69. def handle_text(message):
  70. answer = "Опишите свою проблему."
  71. if message.text == "Есть вопрос":
  72. answer = "Пожалуйста, опишите свою проблему"
  73. log (message, answer)
  74. bot.send_message(message.chat.id, "Пожалуйста, опишите свою проблему")
  75. else:
  76. bot.send_message(message.chat.id, answer)
  77. log(message, answer)
  78. # Use this function when you need to send something to an operators team
  79. def process(message):
  80. text = "%s\n%s пишет to %s\nОтвет: %s" %\
  81. (message, 'Уася', 'Команда техподдержки', '*reply_url*')
  82. for user in team_users:
  83. bot.send_message(user.chat_id, text, disable_web_page_preview=True)
  84. threading.Thread(target=bot.polling).start()
  85. while True:
  86. msg = input("Messages: ")
  87. process(msg)
Прошу помочь, люди добрые!

Решение задачи: «В телеграм боте не приходят уведомления оператору»

textual
Листинг программы
  1. def log(message, answer):
  2.     process(message) # ну или что туда надо отправить
  3.     print("\n ----------")
  4.     print(datetime.now())
  5.     print("Сообщения от {0} {1}. (id = {2}) \n Текст - {3}".format(message.from_user.first_name,
  6.                                                                    message.from_user.last_name,
  7.                                                                    str(message.from_user.id),
  8.                                                                    message.text))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут