我正在使用一个非常简单的代码来收听两个特定的电报输入通道并将所有收到的消息复制到一个目标通道。我正在使用实现 MTProto 的 Pyrogram,因为我不是源频道的管理员,我只是一个读者 - 因此我不能使用常规的 BOT API,因为我的 BOT 不会被添加到源频道 - 相反,我需要依赖用户机器人 API -> MTProto。
到目前为止,我一直在使用 Pyrogram 1.2.9,它运行良好,直到大约 4 周前。
我的代码非常简单明了:
#!/usr/bin/env python3
from pyrogram import Client
from pyrogram import filters
import sys, traceback
from datetime import datetime
# ~~~~~~ CONFIG ~~~~~~~~ #
ACCOUNT = "..."
PHONE_NR = '...'
# API ID and Hash from https://my.telegram.org/auth?to=apps
API_ID = 58111111111
API_HASH = "2234tsdfxxxxxxxxxxxxxxxxxxxxx65"
# Channel IDs...
INPUT__official = -100132xxxxxx
INPUT__testchannel = -100164yyyyyy
OUTPUT__MT_FORWARD_CHAT_ID = -100146xxxxx
# ~~~~~~~~~~~~~~~~~~~~~~ #
try:
app = Client(
ACCOUNT,
phone_number=PHONE_NR,
api_id=API_ID,
api_hash=API_HASH
)
f = filters.chat(INPUT__official) | filters.chat(INPUT__testchannel)
@app.on_message(f)
def my_handler(client, message):
print(message)
# copy() so there's no "forwarded from" header
message.copy(chat_id=OUTPUT__MT_FORWARD_CHAT_ID, caption="")
app.run()
奇怪的是:如果我删除过滤器 f,我会看到来自各种聊天/频道的消息被成功打印并复制到目标频道。
但仅对于一个特定的源频道,我看不到任何收到的消息,即使我在智能手机上的电报应用程序中看到它们 - 是否添加了一个新设置,禁止 MTProto 用户机器人读取特定组/频道?
非常感谢!