频道的电报回声机器人
Telegram echo bot for channels
我在 Python (3.x)
中编写了以下电报机器人:
import telebot
import subprocess
from telebot import types
import os
bot = telebot.TeleBot(os.environ['BOT_API_TOKEN'])
@bot.message_handler(commands=['start'])
def save(messages):
for m in messages:
if "keyword" in m.text:
f = open("channel", "a")
f.write(m.text + "\n")
f.close()
bot.send_message(m.chat.id, "Saved!")
bot.set_update_listener(save)
bot.polling()
想法是将包含单词 keyword
的消息存储在文件 channel
中。如果我与他交谈,这个机器人可以完美运行,但如果我将机器人添加到频道,它就无法正常工作。该机器人已禁用隐私模式并启用加入组选项。
我有另一个机器人做同样的事情但代码不同:
导入日志
导入 os
来自 telegram.ext 导入更新程序、消息处理程序、过滤器
updater = Updater(token=os.environ['BOT_API_TOKEN'])
dispatcher = updater.dispatcher
def save(bot, update):
print(update.message.text)
if "keyword" in update.message.text:
f = open("channel", "a")
f.write(update.message.text + "\n")
f.close()
bot.sendMessage(chat_id=update.message.chat_id, text="Saved!")
save_handler = MessageHandler(Filters.text, save)
dispatcher.add_handler(save_handler)
updater.start_polling()
我不介意哪个版本你能帮我。
如果要处理频道消息,需要解析channel_post
字段而不是message
字段。
你可以锁定官方文档的Update部分了解更多详情。
我在 Python (3.x)
中编写了以下电报机器人:
import telebot
import subprocess
from telebot import types
import os
bot = telebot.TeleBot(os.environ['BOT_API_TOKEN'])
@bot.message_handler(commands=['start'])
def save(messages):
for m in messages:
if "keyword" in m.text:
f = open("channel", "a")
f.write(m.text + "\n")
f.close()
bot.send_message(m.chat.id, "Saved!")
bot.set_update_listener(save)
bot.polling()
想法是将包含单词 keyword
的消息存储在文件 channel
中。如果我与他交谈,这个机器人可以完美运行,但如果我将机器人添加到频道,它就无法正常工作。该机器人已禁用隐私模式并启用加入组选项。
我有另一个机器人做同样的事情但代码不同: 导入日志 导入 os 来自 telegram.ext 导入更新程序、消息处理程序、过滤器
updater = Updater(token=os.environ['BOT_API_TOKEN'])
dispatcher = updater.dispatcher
def save(bot, update):
print(update.message.text)
if "keyword" in update.message.text:
f = open("channel", "a")
f.write(update.message.text + "\n")
f.close()
bot.sendMessage(chat_id=update.message.chat_id, text="Saved!")
save_handler = MessageHandler(Filters.text, save)
dispatcher.add_handler(save_handler)
updater.start_polling()
我不介意哪个版本你能帮我。
如果要处理频道消息,需要解析channel_post
字段而不是message
字段。
你可以锁定官方文档的Update部分了解更多详情。