我有一个私人频道的邀请链接,我想从这个频道转发(或发送)帖子给我。我想要的伪代码如下所示。
def get_channel(bot, update):
message=update.channel_post.text
print(message)
updater = Updater(my_token)
channel_handler = MessageHandler(Filters.text, get_channel,
channel_post_updates=True, invite_link='http://t.me/aa23faba22939bf')
updater.dispatcher.add_handler(channel_handler)
当我的机器人在我创建的频道中时,这很有效(为我的目的添加了invite_link。我不知道应该在哪里输入invite_link)。但我想要的是我的机器人从我的机器人不在其中的频道转发帖子。包括在内。我更喜欢python,但任何API都可以。我搜索了所有谷歌世界,但没有任何线索..任何提示赞赏。
答案 0 :(得分:1)
我找到了一个Telethon库的解决方案。它对我有用(http://telethon.readthedocs.io/en/latest/extra/advanced-usage/update-modes.html)
def callback(update):
print('I received', update)
client = TelegramClient('session', api_id, api_hash,
update_workers=1, spawn_read_thread=False)
client.connect()
client.add_event_handler(callback)
client.idle() # ends with Ctrl+C
在回调功能中,您只能过滤频道帖子或群组讯息。
答案 1 :(得分:0)
如果您想将频道中的消息(任何形式)(无论是私人消息还是公共消息)都转发到其他任何聊天室:
将您的漫游器添加到频道(请注意,漫游器仅作为管理员添加到频道并具有管理员权限)
以下代码(在python中)将执行转发:
from telegram import Bot
def forward(update, context):
chat_id = update.effective_chat.id
bot = Bot(token=TOKEN)
bot.forward_message(chat_id = chat_id,
from_chat_id = channel_id,
message_id = (number))
上面的代码将消息从“ from_chat_id”转发到“ chat_id”(是询问查询的用户的chat_id)
channel_id仅仅是该频道的电报邀请链接(以@开头)
message_id是通道中消息的唯一编号。如果右键单击频道内的消息,然后选择“复制帖子链接”并将其粘贴到某处,则类似于以下内容: https://t.me/c/123456789/2040
(123456789是专用频道的链接。如果这是公共频道,而不是“ 123456789”,那么该频道的公共地址以@开头)
消息ID是:2040,不是全部。
引用:https://python-telegram-bot.readthedocs.io/en/stable/telegram.bot.html#telegram.Bot.forward_message